在C ++中处理UTF-8
为了找出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
告诉我没有坠机事故,但出口正常,但是我很难相信。
回答:
在Linux上不要使用wstring。
std :: wstring VS std ::
string
看看第一个答案。我确定它能回答您的问题。
- 什么时候应该在std :: string上使用std :: wstring?
在Linux上?几乎从不 (§)。
在Windows上?几乎总是 (§)。
以上是 在C ++中处理UTF-8 的全部内容, 来源链接: utcz.com/qa/415053.html