Delphi - получить кодировку для данного файла - PullRequest
2 голосов
/ 02 февраля 2012

Я прочитал этот вопрос, который, как я думал, даст мне то, что я хотел получить:

Как я могу наилучшим образом угадать кодировку, если спецификация (метка порядка байтов) отсутствует?

Хотелось бы узнать, есть ли другой способ получить кодировку файла, без использования компонента Mozilla i18n в D2006?Я не могу использовать другие сторонние компоненты.

Я прочитал все ответы из оригинального вопроса, и я не могу использовать предоставленный интерфейс, потому что клиент не принимает развертывание этой DLL:

Некоторые из ссылок, приведенных в исходном вопросе, не работают, и ни одна из них не относится к моейпроблема, а именно:
Как получить кодировку файла без использования сторонних компонентов?

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

Я бы сначала искал спецификацию, и если она не найдена, вызовите IsTextUnicode.Но будьте осторожны, ни один метод не является надежным.

1 голос
/ 12 мая 2012

Определение кодировки файла представляется проблематичным. Похоже, что некоторые файлы UTF8 не имеют спецификации. Это похоже на работу:

InputData.LoadFromFile(f,TEncoding.UTF8);
if InputData.count=0 then
  InputData.LoadFromFile(f);

Есть ли лучший подход. Я знаю, что это решение не очень элегантно.

...