Вопрос

Я пытаюсь распечатать кучу ярлыков устройства; Некоторые из них содержат греческие символы, у некоторых есть другие забавные кодовые точки.

Я отследил его до wctomb Функции, не зная, что делать с EG EG UTF-16 символом 8240:

char mb[10]; 
assert( 0 <= wctomb(mb,8240) );

Как я могу установить локаль, используемый wctomb Например, «все символы Unicode»?

Как я могу найти нужное имя, которое мне нужно, начиная с персонажей, которые мне нужны?

Это было полезно?

Решение

Установка правильного локали UTF-8 исправят;

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

int main()
{
    setlocale(LC_ALL, "en_US.UTF-8");
    char mb[10]; 
    assert( 0 <= wctomb(mb,8240) );
    printf("%s\n", mb);
    return 0;
}

Видеть http://ideone.com/sflzj

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top