在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. 什么时候应该在std :: string上使用std :: wstring?

在Linux上?几乎从不 (§)。

在Windows上?几乎总是 (§)。

以上是 在C ++中处理UTF-8 的全部内容, 来源链接: utcz.com/qa/415053.html

回到顶部