如何在C++中打印Unicode字符

84

我正在尝试打印一个俄语字符 "ф" (U+0444 CYRILLIC SMALL LETTER EF),其代码为十进制 1092。使用 C++,我应该如何打印出这个字符?我本以为以下类似的方式可以工作,但是......

int main (){
   wchar_t f = '1060';
   cout << f << endl;
}

2
请注意,这个问题是双重的(至少对于有效的C++程序而言):在代码中表达字符,并正确地传递给std::cout。即使这两个步骤都正确完成,正确显示字符在连接到std::cout的任何内容中仍然是一个完全不同的问题。 - Luc Danton
这个回答解决了你的问题吗?C++11中字符串字面量的Unicode编码 - M.J. Rayburn
11个回答

0

在Linux中的另一种解决方案:

string a = "Ф";
cout << "Ф = \xd0\xa4 = " << hex
     << int(static_cast<unsigned char>(a[0]))
     << int(static_cast<unsigned char>(a[1])) << " (" << a.length() << "B)" << endl;

string b = "√";
cout << "√ = \xe2\x88\x9a = " << hex
     << int(static_cast<unsigned char>(b[0]))
     << int(static_cast<unsigned char>(b[1]))
     << int(static_cast<unsigned char>(b[2])) << " (" << b.length() << "B)" << endl;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接