为了找出C ++是否适合我的项目,我想测试UTF-8功能。根据参考,我构建了以下示例:
#include <string> #include <iostream> using namespace std; int main() { wstring str; while(getline(wcin, str)) { wcout << str << endl; if(str.empty()) break; } return 0; }
但是,当我输入UTF-8字符时,它的行为不正确:
$ > ./utf8 Hello Hello für f $ >
它不仅不打印ü,而且立即退出。gdb告诉我没有坠机事故,但出口正常,但是我很难相信。
ü
gdb
在Linux上不要使用wstring。
std :: wstring VS std :: string
看看第一个答案。我确定它能回答您的问题。
什么时候应该在std :: string上使用std :: wstring? 在Linux上?几乎从不 (§)。 在Windows上?几乎总是 (§)。
在Linux上?几乎从不 (§)。
在Windows上?几乎总是 (§)。