在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.
看看第一个答案.我相信它会回答你的问题.
- When I should use std::wstring over std::string?
On Linux? Almost never (§).
On Windows? Almost always (§).
标签:c,linux,utf-8,stl,wstring 来源: https://codeday.me/bug/20191001/1837571.html