Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
2-1134633754
ZZZ
2005-12-15 11:02
2006.01.01
Код клавиши Del.


2-1134412154
vpavel
2005-12-12 21:29
2006.01.01
Запрет CTRL+ALT+DEL на XP


1-1133525224
Rule
2005-12-02 15:07
2006.01.01
как отработать события СОМ объекта принадлежащего классу TThread


3-1131529224
oleggar
2005-11-09 12:40
2006.01.01
BDE+dbf+query


6-1127299648
Denizzz
2005-09-21 14:47
2006.01.01
Как узнать что хост недоступен?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский