Вектомблётный символ задыхается (le) - PullRequest
0 голосов
/ 27 января 2011

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

Я проследил это до функций wctomb, не зная, что делать, например с символом UTF-16 8240:

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

Как я могу установить язык, используемый wctomb, например, "Все символы Юникода"?

Как мне найти нужное название локали, которое мне нужно, начиная с нужных мне символов?

1 Ответ

2 голосов
/ 27 января 2011

Установка правильного языкового стандарта 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

...