Wctomb удушает символ на Мил (‰)
Вопрос
Я пытаюсь распечатать кучу ярлыков устройства; Некоторые из них содержат греческие символы, у некоторых есть другие забавные кодовые точки.
Я отследил его до 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
Не связан с StackOverflow