Китайский символ слишком велик для включения буквального типа символов - PullRequest
2 голосов
/ 09 мая 2020

Я пытаюсь назначить китайский символ 牛 как значение char в C ++. В Xcode я получаю сообщение об ошибке:

«Символ слишком велик для включения типа символьного литерала».

Когда я использую онлайн-среду IDE, такую ​​как JDoodle или Browxy, я получаю ошибка:

«многосимвольная константа».

Неважно, использую ли я char, char16_t, char32_t или wchar_t, это не сработает . Я думал, что любой китайский иероглиф может хотя бы вписаться в wchar_t, но, похоже, это не так. Что я могу сделать иначе?

char letter = '牛';
char16_t character = '牛';
char32_t hanzi = '牛';
wchar_t word = '牛';

1 Ответ

4 голосов
/ 09 мая 2020

Все ваши символьные литералы стандартные char s. Чтобы получить более широкий шрифт, вам нужно включить правильный префикс в литерал:

char letter = '牛';
char16_t character = u'牛';
char32_t hanzi = U'牛';
wchar_t word = L'牛';
...