2016-08-08 32 views
1

这里是非常简单的C++代码:Netbeans的c + +不打印UTF-8字符

char a00 = 'Z'; 
char a01 = '\u0444'; 
char a02[5] = {'H','e','l','l','o'}; 
char a03[] = {'W','o','r','l','d','\0','Z','Z'}; 

cout << "Simple char: " << a00 
     << "\nUTF-8 char: " << a01 
     << "\nFull char array: " << a02 
     << "\n2nd in char array: " << a02[1] 
     << "\nWith null character: " << a03 << endl; 

我的问题是当Netbeans的8.1试图示出了这种程序的输出,它不创建UTF-8字符。

的性格应该是这样的:ф(见:link

相反,我得到下面的输出:

(image)

我曾尝试加入-J-Dfile.encoding=UTF-8netbeans_default-options位于netbeans.conf文件中在etc文件夹内。它没有任何区别。

+1

很少'UTF-8'字符放入一个'char'。大多数需要两个或三个字节。尝试把它放在一个字符串中:'std :: string s =“\ u0444”;' – Galik

+0

@Galik是的,这完全解决了我的问题。如果你创建了答案,我将能够接受它并关闭这个问题。非常感谢 :) –

回答

1

UTF-8是一个多字节字符编码,这意味着大多数字符占用几个字节。所以一个char是不足以容纳大多数UTF-8字符。

您可以将它们存储在像这样的字符串:

std::string s = "\u0444";