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

Вниз

Кодировка текста   Найти похожие ветки 

 
Mambo   (2005-10-26 16:57) [0]

Господа!
Как можно программно определить, в какой кодировке написан текст?
(Греческая, Центральноевропейская, Кириллица, Китайская и проч.)


 
Digitman ©   (2005-10-26 17:33) [1]

никак.


 
Mambo   (2005-10-26 17:40) [2]

А как это делает MS OE? (даже когда кодировка не прописана)


 
Игорь Шевченко ©   (2005-10-26 17:52) [3]

Mambo   (26.10.05 17:40) [2]

А что делает MS OE ? Определяет, в какой кодировке написан произвольный текст ?


 
Digitman ©   (2005-10-26 17:52) [4]


> как это делает MS OE?


точно так же - никак.

есть дифолт-кодировка, именно с ней MSOE и интерпретирует все то дерьмо, которое ему на вход поступает


 
Mambo   (2005-10-26 18:47) [5]

есть два письма с charset="utf-8", открываем их в MS OE - вуаля!
В одном Греческая, в другом - Китайская.
Все счастливы, все довольны.
Похоже, только в MS знают секрет.


 
Anatoly Podgoretsky ©   (2005-10-26 18:48) [6]

Это где ты такое прочитал кодировка и Юникод.


 
Mambo   (2005-10-26 18:53) [7]

Вот два письма (from и to удалил), сохраните каждое из них как EML и откройте:

1.
Subject: boer
Date: Wed, 26 Oct 2005 10:29:15 +0200
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0009_01C5DA18.22DBD630"
X-Priority: 3
X-MSMail-Priority: Normal
X-Unsent: 1
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527

This is a multi-part message in MIME format.

------=_NextPart_000_0009_01C5DA18.22DBD630
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable

=
=E5=8C=85=E6=8B=AC=E7=84=A6=E7=82=B9=E6=96=B0=E9=97=BB=E6=8A=A5=E9=81=93
------=_NextPart_000_0009_01C5DA18.22DBD630
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8">
<META content=3D"MSHTML 6.00.2900.2769" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2><!--StartFragment --><FONT =
size=3D3> </FONT><FONT=20
size=3D-1>=E5=8C=85=E6=8B=AC=E7=84=A6=E7=82=B9=E6=96=B0=E9=97=BB=E6=8A=A5=
=E9=81=93</FONT><FONT size=3D3> </FONT></FONT></DIV></BODY></HTML>

------=_NextPart_000_0009_01C5DA18.22DBD630--

2.
Subject: subbie
Date: Thu, 20 Oct 2005 09:50:47 +0200
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_000F_01C5D55B.C1C23E40"
X-Priority: 3
X-MSMail-Priority: Normal
X-Unsent: 1
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2527

This is a multi-part message in MIME format.

------=_NextPart_000_000F_01C5D55B.C1C23E40
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable

=CE=9F =CE=95=CE=BB=CE=BB=CE=B7=CE=BD=CE=B9=CE=BA=CF=8C=CF=82 =
=CE=9F=CF=81=CE=B3=CE=B1=CE=BD=CE=B9=CF=83=CE=BC=CF=8C=CF=82 =
=CE=A4=CE=BF=CF=85=CF=81=CE=B9=CF=83=CE=BC=CE=BF=CF=8D =
=CE=B1=CF=80=CE=BF=CF=84=CE=B5=CE=BB=CE=B5=CE=AF =
=CE=9D=CE=BF=CE=BC=CE=B9=CE=BA=CF=8C =
=CE=A0=CF=81=CF=8C=CF=83=CF=89=CF=80=CE=BF =
=CE=94=CE=B7=CE=BC=CE=BF=CF=83=CE=AF=CE=BF=CF=85 =
=CE=94=CE=B9=CE=BA=CE=B1=CE=AF=CE=BF=CF=85 =CF=85=CF=80=CF=8C =
=CF=84=CE=B7=CE=BD =CE=B5=CF=80=CE=BF=CF=80=CF=84=CE=B5=CE=AF=CE=B1 =
=CF=84=CE=BF=CF=85 =
=CE=A5=CF=80=CE=BF=CF=85=CF=81=CE=B3=CE=B5=CE=AF=CE=BF=CF=85 =
=CE=A4=CE=BF=CF=85=CF=81=CE=B9=CF=83=CF=84=CE=B9=CE=BA=CE=AE=CF=82 =
=CE=91=CE=BD=CE=AC=CF=80=CF=84=CF=85=CE=BE=CE=B7=CF=82. ~
------=_NextPart_000_000F_01C5D55B.C1C23E40
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8">
<META content=3D"MSHTML 6.00.2900.2769" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2><!--StartFragment --><FONT =
size=3D3><!--StartFragment --> =CE=9F=20
=CE=95=CE=BB=CE=BB=CE=B7=CE=BD=CE=B9=CE=BA=CF=8C=CF=82 =
=CE=9F=CF=81=CE=B3=CE=B1=CE=BD=CE=B9=CF=83=CE=BC=CF=8C=CF=82 =
=CE=A4=CE=BF=CF=85=CF=81=CE=B9=CF=83=CE=BC=CE=BF=CF=8D =
=CE=B1=CF=80=CE=BF=CF=84=CE=B5=CE=BB=CE=B5=CE=AF =
=CE=9D=CE=BF=CE=BC=CE=B9=CE=BA=CF=8C =
=CE=A0=CF=81=CF=8C=CF=83=CF=89=CF=80=CE=BF =
=CE=94=CE=B7=CE=BC=CE=BF=CF=83=CE=AF=CE=BF=CF=85 =
=CE=94=CE=B9=CE=BA=CE=B1=CE=AF=CE=BF=CF=85 =CF=85=CF=80=CF=8C =
=CF=84=CE=B7=CE=BD=20
=CE=B5=CF=80=CE=BF=CF=80=CF=84=CE=B5=CE=AF=CE=B1 =CF=84=CE=BF=CF=85 =
=CE=A5=CF=80=CE=BF=CF=85=CF=81=CE=B3=CE=B5=CE=AF=CE=BF=CF=85 =
=CE=A4=CE=BF=CF=85=CF=81=CE=B9=CF=83=CF=84=CE=B9=CE=BA=CE=AE=CF=82 =
=CE=91=CE=BD=CE=AC=CF=80=CF=84=CF=85=CE=BE=CE=B7=CF=82.=20
~</FONT></FONT></DIV></BODY></HTML>

------=_NextPart_000_000F_01C5D55B.C1C23E40--


 
Anatoly Podgoretsky ©   (2005-10-26 18:58) [8]

Mambo   (26.10.05 18:53) [7]
А зачем, тут явна указано UTF-8


 
Mambo   (2005-10-26 19:22) [9]

И?


 
Anatoly Podgoretsky ©   (2005-10-26 19:31) [10]

И все. Никаких турецких, японских.


 
umbra ©   (2005-10-26 19:41) [11]


> Content-Transfer-Encoding: quoted-printable


Все дело в способе кодировки сообщения. Это ведь не текст. И в соответствии с правилами декодирования этого quoted-printable получаются однозначно определенные символы Уникода. Китайские, японские, арабские - любые.


 
wp2   (2005-10-26 20:28) [12]

Я думаю определяется по небольшой смысловой нагрузке. Вообщим надо быть филологом, но... есть просто сочетания букв, которых не существует.
И программа может подбирать разные кодировки, чтобы вышло что-то похожее на "разрешенные" буквенные сочетания.

Хоший кстати пример это Тотал Коммандер, если нажать на F3 (для просмотра), то Lister покажет текст в той кодировке, в которой как раз и находится текст...


 
Джо ©   (2005-10-26 20:42) [13]

Да, очень неплохой результат дает даже анализ диграмм. Да и по частоте употребления отдельных символов тоже удобоваримо получается.


 
wp2   (2005-10-26 21:36) [14]


> Хоший кстати пример это Тотал Коммандер, если нажать на
> F3 (для просмотра), то Lister покажет текст в той кодировке,
>  в которой как раз и находится текст...

Хотя если серйозно, то определить OEM от ANSI Lister"у легко.
В OEM используются восновном символы с кодами от 128 до 239 (причём 176-223 не задействованы). Ну, думаю вы как программисты об этом знаете...

В ANSI русские буквы идут с 192 и до конца...



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

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

Наверх





Память: 0.49 MB
Время: 0.038 c
11-1111951017
DeimosX7
2005-03-27 23:16
2005.11.20
проблема с передачей параметров


1-1130392333
Zaletchik
2005-10-27 09:52
2005.11.20
Большой буфер при рботе с TFileStream


1-1130504570
alless
2005-10-28 17:02
2005.11.20
TmainMenu, Items.Caption


3-1128778466
alpine
2005-10-08 17:34
2005.11.20
Через что лучше установить соединение с MySQL ?


2-1130955034
$M@RT
2005-11-02 21:10
2005.11.20
Получение списка файлов





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