Netbeans C++ не печатает символы UTF-8

Вот очень простой код 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.

Персонаж должен выглядеть так: ф (см.: ссылка)

Вместо этого я получаю следующий вывод:

(образ)

Я пробовал добавлять -J-Dfile.encoding=UTF-8 в netbeans_default-options внутри netbeans.conf файл, расположенный внутри etc папка. Это не имело никакого значения.

1 ответ

Решение

UTF-8 является многобайтовой кодировкой символов, что означает, что большинство символов занимают несколько байтов. Так что один char недостаточно, чтобы держать большинство UTF-8 персонажи.

Вы можете хранить их в строке, как это:

std::string s = "\u0444";
Другие вопросы по тегам