Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Вниз

Определение кодировки текстового файла, OEM или ANSI   Найти похожие ветки 

 
Michael K   (2004-01-08 14:39) [0]

Здравствуйте!
Знает ли кто алгоритм определения кодировки текстового файла, DOS (OEM) или Windows (ANSI)?
Полагаю 100% надёжного метода нет, но хоть какой-нибудь должен же быть, скажем, Total Commander
по F3 открывая файл пытается определить кодировку, причём почти всегда верно.


 
Романов Р.В.   (2004-01-08 14:51) [1]

В этих кодировках некоторые символы русского языка не пересекаются. Т.е. на месте русских символов одной кодировки находится псевдографика или каракули в другой. Анализируй кусок текста в поисках таких символов.


 
Anatoly Podgoretsky   (2004-01-08 14:56) [2]

Вопрос то не про русский, а про OEM-ANSI


 
Romkin   (2004-01-08 15:05) [3]

А по частоте употребления букв "О" и "о" как самый простой способ. Например, если часто встречается код 238 - то ANSI, иначе при присутствии множества символов больше 128 - скорее всего OEM


 
sniknik   (2004-01-08 15:13) [4]

очень простой способ, посчитать количество букв в куске кода, а если учесть что некоторые буквы встречаются в тексте чаше...
то например
Аа - в OEM 128-160, в ANSI 192-224
больше первых символов значит OEM вторых ANSI. (только наверное по "о" нужно ориентироваться более употребимая буква.)
или вообше посчитать обшую сумму ord символов в тексте и вычислить среднее значение, у ANSI это среднее будет больше (кодировка начинается с 192 а не 128).


 
sniknik   (2004-01-08 15:16) [5]

Anatoly Podgoretsky © (08.01.04 14:56) [2]
а для для английского разве важно? и там и там теже места занимают.


 
Anatoly Podgoretsky   (2004-01-08 15:21) [6]

Если используются только буквы (первая половина таблицы) то не вахно, но если используются символы со второй половины таблицы. то очень важно, они или отсутствуют в ANSI или находятся на других местах и без знания языка по позиции не определить толи это OEM, толи ANSI - например символ §


 
KSergey   (2004-01-08 15:24) [7]

> [5] sniknik © (08.01.04 15:16)
> Anatoly Podgoretsky © (08.01.04 14:56) [2]
> а для для английского разве важно? и там и там теже места
> занимают.

Подозреваю, что Podgoretsky как всегда решил выпендриться и намекнуть, что в общем случае OEM (равно как и ANSI) может быть не только для русского. Их много, для разных языков.
Вот только неужели и ему необходимо напоминать, что телепаты в отпуске?

PS
Простите за резкость тона к уважаемым согражданам (хотя какие они нам (мы им?) сограждане ;), но неужели нельзя свои мысли полностью излагать?
Чес. слово - больше на выпендреж похоже, чем на дружеское замечание умудренного опытом учителя. ("Я тут ляпну, а вы понапрягайтесь. А я тут поухмыляюсь в бороду". Стыдно, товарищ. Стыдно.) (Тамбовский, говоришь? ;)


 
KSergey   (2004-01-08 15:28) [8]

> [6] Anatoly Podgoretsky © (08.01.04 15:21)

Ага, пока я тут свои излияния делал, был дан кое-какой ответ ;)

Но может все же внимательнее читать вопросы? (я просто ищу формальный повод прицепиться)
"Полагаю 100% надёжного метода нет, но хоть какой-нибудь должен же быть"
На хоть какой-нибудь, думаю, предложенные вполне тянут.


 
KSergey   (2004-01-08 15:32) [9]

И еще в дополнение к KSergey © (08.01.04 15:28) и о поводу Anatoly Podgoretsky © (08.01.04 15:21)
При чем тут §? Речь про определение кодировки текста (рискну так же предположить - осмысленного), на который § - ну явно не похож - то тогда нам, наверное, действительно не повезет...


 
sniknik   (2004-01-08 15:44) [10]

Anatoly Podgoretsky © (08.01.04 15:21) [6]
ну наверное когда куча псевдографики, в общей массе (и не поймеш толи буква из ANSI толи символ из OEM) то и Total Commander неверно определит.
кстати можно и проверить, если так, то вычисляет подобным же образом.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
3-62963
Пубертанец
2003-12-24 18:17
2004.01.20
Какие есть программы для работы с Interbase?


1-63094
hfa
2004-01-08 14:43
2004.01.20
webICQ и ICQ for windows


3-63041
gleb
2003-12-22 08:49
2004.01.20
DBGRID


1-63105
del
2004-01-08 07:06
2004.01.20
освобождение памяти


1-63077
SMT
2004-01-08 17:57
2004.01.20
Применение процедур Canvas.TextWidth и Canvas.TextHeight





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский