Как распознать кодировку текстового файла

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
SergeySmlInf
новенький
Сообщения: 40
Зарегистрирован: 02.10.2007 07:59:26
Откуда: Смоленск

Как распознать кодировку текстового файла

Сообщение SergeySmlInf »

Существует такая проблема:
Данные для программы могут быть приготовлены в любом текстовом редакторе и сохранены в текстовом файле.
Как можно при открытии файла определить какая кодировка была использована в нем?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Есть алгоритм основанный на частоте появленя определённых букв. Опледеление работает практически на 100%.
SergeySmlInf
новенький
Сообщения: 40
Зарегистрирован: 02.10.2007 07:59:26
Откуда: Смоленск

Сообщение SergeySmlInf »

Спасибо!
Разбираюсь...
SergeySmlInf
новенький
Сообщения: 40
Зарегистрирован: 02.10.2007 07:59:26
Откуда: Смоленск

Сообщение SergeySmlInf »

Вообщем, помогло мало...
Решил задачу по другому:
Читаю текст, загружаю строку в TEdit
если в Edit1.text пусто считаю, что кодировка не UTF8
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Как определяешь, что пусто?

Добавлено спустя 37 секунд:
А вдруг в тексте присутствует Латиница?
SergeySmlInf
новенький
Сообщения: 40
Зарегистрирован: 02.10.2007 07:59:26
Откуда: Смоленск

Сообщение SergeySmlInf »

А у меня первая строка файла данных содержит заголовок кириллицей.
А сравниваю тупо размеры: считаную строку с этой же строкой помещенной в Tmemo, TlistBox, TEdit
Пока глюков не было...
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Зачем такие сложности?

Код: Выделить всё

var
 s: String;
...
  if Utf8ToUnicode(nil,0,PChar(s),Length(s))<>-1 then
   // UTF8
  else
  // Ansi
...
Ответить