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

Вниз

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

 
abhtr   (2008-12-17 16:00) [0]

Приходит текстовый файл с закодированным текстом.
Шапка этого файла содержит обычный текст, но с разной кодировкой.
Иногда 866, иногда win1251
Как можно определить кодировку этой строки, чтобы представлять ее в любом случае читабельной?
Пробовал KodSimbol := GetOEMCP;
но получается всегда 866
А если просматриваю Far-om, то получается видеть этот текст обычным переключением по F8


 
Сергей М. ©   (2008-12-17 16:04) [1]


> если просматриваю Far-om, то получается видеть этот текст
> обычным переключением по F8


При этом работает "определялка", зашитая в твоей голове - если, мол, я вижу крякозябры, дай-ка я попробую жмакнуть F8, авось увижу желаемое.


> Шапка этого файла


Что есть "шапка файла" ?


 
clickmaker ©   (2008-12-17 16:05) [2]

> Как можно определить кодировку этой строки

если интересует именно автоопределение, то анализом некоторой части текста. Чем больше кусок, тем точнее.

например, так
function IsOem(pbBuff: PByteArray; cb: integer): boolean;
const
 Codes: array[0..9] of byte = (166, 161, 174, 175, 169, 176, 178, 179, 172, 164);
var
 i, j: integer;
begin
 for i := 0 to cb - 1 do
 begin
   if (pbBuff[i] = 0) then break;
   for j := 0 to 9 do
   begin
     if (pbBuff[i] = Codes[j]) then
     begin
       Result := true;
       exit;
     end;
   end;
 end;
Result := false;
end;

Преобразовать - OemToChar


 
Медвежонок Пятачок ©   (2008-12-17 17:13) [3]

Шапка этого файла содержит обычный текст, но с разной кодировкой.

Тупо Pos()

Если не совпало, значит в oem


 
Anatoly Podgoretsky ©   (2008-12-17 17:20) [4]

Если есть коды в диапазоне 128-191 то 866


 
Правильный$Вася   (2008-12-17 18:03) [5]


> если просматриваю Far-om

у него есть частотные списки кодов для текстов на разных языках/кодировках
поэтому часто угадывает
тут смотри "C:\Program Files\Far\Addons\Tables\Russian"



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

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

Наверх





Память: 0.45 MB
Время: 0.006 c
15-1228730968
aston2204
2008-12-08 13:09
2009.02.01
Определить СУБД по файлу БД


15-1228382454
aston2204
2008-12-04 12:20
2009.02.01
Преимущества собственных разработок перед 1С


15-1227739103
DillerXX
2008-11-27 01:38
2009.02.01
Вопрос к пользовтелям googlemail (gmail)


15-1228732709
1234567
2008-12-08 13:38
2009.02.01
mwEdit


2-1229403281
Съедобный
2008-12-16 07:54
2009.02.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский