这是非常简单的C++代码:

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-8添加到位于netbeans_default-options文件夹内的netbeans.conf文件内的etc中。没关系。

最佳答案

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

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

std::string s = "\u0444";

09-30 14:24
查看更多