[Homeros] Voiceman. Определение кодировки

Дмитрий Падучих dpaduch на k66.ru
Пн Май 10 05:58:11 UTC 2010


Привет всем!

Как я понимаю, Voiceman определяет кодировку локали на основании
переменной $LANG. Но это не вполне верный способ. $LC_CTYPE и $LC_ALL
имеют приоритет перед $LANG. К тому же в имени локали может не быть
кодировки. Более надёжный (и простой) способ:

setlocale(LC_CTYPE, "");
char *encoding = nl_langinfo(CODESET);

Ещё, по-моему, полагаться на то, что представление wchar_t совпадает с
utf32le, не слишком надёжно. По крайней мере в libiconv для этого есть
специальная кодировка - wchar_t. Возможно, лучше использовать её.

-- 
Дмитрий Падучих


Подробная информация о списке рассылки Homeros