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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
9-1167021706
MonoLife
2006-12-25 07:41
2009.02.01
puzzle


15-1228487682
Jeer
2008-12-05 17:34
2009.02.01
Алексий II отошел в мир иной, однако


15-1227341190
Gydvin
2008-11-22 11:06
2009.02.01
Создание битмап в цветовом пространстве CMYK


2-1229432916
девушка
2008-12-16 16:08
2009.02.01
DevExpress properties


1-1207680923
@!!ex
2008-04-08 22:55
2009.02.01
Использование 7z