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

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


Michael Pozhidaev:

MP> Hello, Дмитрий Падучих!

[...]

>> А вообще мне не раз приходилось слышать, что wchar_t - отстой.
>> Говорили, например, что в BSD представление wchar_t зависит от

MP> Под отстоем ты имеешь ввиду тип или кодировку?

Положение дел с реализацией wchar_t.

[...]

MP> Про тест через memcmp я тоже не совсем понял. Расскажи подробнее,
MP> пожалуйста.

const unsigned char test_utf32le[] = {
  0x22, 0x04, 0x00, 0x00, 0x35, 0x04, 0x00, 0x00, 0x41, 0x04, 0x00, 0x00,
  0x42, 0x04, 0x00, 0x00
};

const unsigned char test_utf32be[] = {
  0x00, 0x00, 0x04, 0x22, 0x00, 0x00, 0x04, 0x35, 0x00, 0x00, 0x04, 0x41,
  0x00, 0x00, 0x04, 0x42
};

const wchar_t test_wchar[] = L"Тест";

if (memcmp(test_utf32le, test_wchar, sizeof(test_utf32le)) == 0)
  inner_encoding = "utf32le";

Такую проверку можно было бы при желании сделать в случае, если не
хочется использовать mbstowcs, и если iconv не поймёт кодировку wchar_t.

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


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