Главная страница
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.48 MB
Время: 0.016 c
15-1228215954
tesseract
2008-12-02 14:05
2009.02.01
Дурят нашего брата. Хотя может от студентов защищаются :


2-1229419734
snake-as
2008-12-16 12:28
2009.02.01
Динамически создаваемые компоненты


3-1214028304
lod
2008-06-21 10:05
2009.02.01
Ошибка при открытии таблицы


11-1197054692
Vinum
2007-12-07 22:11
2009.02.01
Как в перемен. типа PGif загрузить из перемен. типа TStringStream


15-1222413251
Василий Жогарев
2008-09-26 11:14
2009.02.01
PostgreSQL, MySQL, IB, FB