Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.20;
Скачать: CL | DM;

Вниз

Определение кодировки текстового файла, 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
14-63303
Thor
2003-12-27 00:48
2004.01.20
какой программой открыть файл формата nmb?


14-63338
Дух_помсты
2003-12-28 18:55
2004.01.20
Как выдергивать ресурсы из RES-файла?


1-63186
DDA
2004-01-10 12:00
2004.01.20
ComboBox vs Panel


3-63019
Trad
2003-12-22 06:47
2004.01.20
прямая запись в БД


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