Печать многобайтового символа UTF-8 в C - PullRequest
0 голосов
/ 21 сентября 2019

Я написал этот код для печати многобайтовой строки UTF-8.Но это не печатает должным образом.Примечание: я делаю это в системе Linux.

#include <stdio.h>
#include <locale.h>

int main()
{
    char *locale = setlocale(LC_ALL, "");
    printf("\n locale =%s\n", locale);
    printf("test\n \x263a\x263b Hello from C\n", locale);

    return 0;
}

1 Ответ

1 голос
/ 24 сентября 2019

Использовать \u вместо \x:

#include <stdio.h>
#include <locale.h>

int main()
{
    char *locale = setlocale(LC_ALL, "");
    printf("\n locale =%s\n", locale);
    printf("test\n \u263a\u263b Hello from C\n");

    return 0;
}

Запускается и выдает следующий вывод:

$ gcc foo.c
$ ./a.out 

 locale =C
test
 ☺☻ Hello from C
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...