其他分享
首页 > 其他分享> > 在C中处理UTF-8

在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

看看第一个答案.我相信它会回答你的问题.

  1. 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