Вниз
Скачать: CL | DM;

Хм. А как определить - 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
2-1134412154
vpavel
2005-12-12 21:29
2006.01.01
Запрет CTRL+ALT+DEL на XP


2-1134262990
Officeman
2005-12-11 04:03
2006.01.01
Закрыть программу


14-1134223686
Влад
2005-12-10 17:08
2006.01.01
Посоветуйте мини пылесос :)


14-1134038344
Харько
2005-12-08 13:39
2006.01.01
ЗАМЕТКИ ПО ЖЕHСКОЙ ЛОГИКЕ


2-1134822279
Johnnie_pw
2005-12-17 15:24
2006.01.01
Некоторые проблемы с реестром




   Наверх