Как правильно отображать символы юникода игральной карты в терминале? - PullRequest
0 голосов
/ 03 мая 2019

Мне нужно напечатать символы Unicode для 52 игральных карт на терминале.Но когда я запускаю код, я вместо этого получаю букву «А» со странными акцентами для масти, за которой следует номер карты.Основываясь на собственном чтении, я думаю, что ограничение - это шрифт, который использует терминал.Но я не уверен, как это исправить.Терминал без проблем показывает сами костюмы.Например, программа не имеет проблем с этими: ♣ ♠ ♦ ♣, но не может правильно отобразить их: ?, ?, ? и т. Д.

Это то, что распечатывается:

image

Это на Cent OS 7 VM.

Ответы [ 2 ]

0 голосов
/ 03 мая 2019
#include <iostream>
int main() {
    std::cout << "?\n";                    // string literal
    std::cout << "\xF0\x9F\x82\xA1\n";      // UTF-8 encoded octets
}

Если у вас есть символ в строке, вам нужно кодировать его самостоятельно, см. https://stackoverflow.com/questions/tagged/c%2b%2b%20utf-8.

0 голосов
/ 03 мая 2019

Не уверен, где вы взяли код 1F0.Шахтные работы:

int main() {
    std::cout << "Hello World!\n";
    std::cout << "\u2660\u2661\u2662\u2663\u2664\u2665\u2666\u2667\n";
}

Запустите онлайн!https://repl.it/repls/AltruisticMixedTask

Я посмотрел код здесь: https://unicodelookup.com/#suit/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...