Форум: "Основная";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
ВнизХм. А как определить - Unicode, UTF-8 или ANSI? Найти похожие ветки
← →
Задумавшийся (2005-12-03 20:22) [0]Здравствуйте. Есть файл (plain-text) FileName, как опеределить содержимое какого типа в нем находится - Unicode, UTF-8 или ANSI? Спасибо.
← →
Задумавшийся (2005-12-03 20:52) [1]Откопал интересный текст. Теперь проблема технического плана - как считать эти байти и определить?
Для указания кодировки текста в Юникоде используется соглашение, по которому в начале текста записывается символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый меткой порядка байтов (англ. Byte Order Mark, BOM). Поскольку символа U+FFFE не существует, это позволяет определить кодировку текста. Документы, следующие этой конвенции начинаются с такой последовательности байтов:
UTF-8
EF BB BF
UTF-16BE
FE FF
UTF-16LE
FF FE
UTF-32BE
00 00 FE FF
UTF-32LE
FF FE 00 00
К сожалению, эта мера не даёт возможности различать UTF-16LE и UTF-32LE, поскольку U+0000 является легальным символом (хотя реальные тексты редко начинаются с него).
← →
Piter © (2005-12-03 21:16) [2]http://ah054.scut.ru/
Задумавшийся (03.12.05 20:52) [1]
Для указания кодировки текста в Юникоде используется соглашение
видимо, далеко не всегда используется, ибо:
"The IsTextUnicode function determines whether a buffer is likely to contain a form of Unicode text. The function uses various statistical and deterministic methods to make its determination, under the control of flags passed via lpi"
← →
Задумавшийся (2005-12-03 21:30) [3]Спасибо, конечно, но оттуда же:
Requirements
Windows NT/2000/XP/Vista: Included in Windows NT 3.5 and later.
Windows 95/98/Me: Unsupported.
Критично...
> видимо, далеко не всегда используется, ибо:
Да, насколько я понял это т.н "сигнатура Unicode", где то вставляется, где то нет. Но как раз это не критично, 100% точность определения не требуется.
← →
Anatoly Podgoretsky © (2005-12-03 21:50) [4]Задумавшийся (03.12.05 20:52) [1]
Ты не путаешь Юникод и UTF
← →
Задумавшийся (2005-12-03 21:55) [5]2 Anatoly Podgoretsky
Да, к тому моменту, когда писал пост, еще не особо осознавал :). Теперь понимаю, что "Юникод" в моем прошлом понимании на самом деле есть UTF-16.
← →
Задумавшийся (2005-12-04 00:45) [6]Сделал, работает, спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c