Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: 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 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
3-1131523537
mpokemonov
2005-11-09 11:05
2006.01.01
StoreProcedure+InterBase


5-1120204585
wertolet
2005-07-01 11:56
2006.01.01
DBGrid со свойством ScrollBars


4-1130416515
kay
2005-10-27 16:35
2006.01.01
Хочу сделать Balloon tip, но не знаю как получить координаты...


4-1130761542
s_t_d
2005-10-31 15:25
2006.01.01
Печать данных


1-1132811400
Pank83
2005-11-24 08:50
2006.01.01
taskbar