Задать вопрос
JustJoe_066
@JustJoe_066

Как перевести текст из заранее неизвестной кодировки в UTF-8?

Допустим прочитали файл, в котором кодировка заранее не определена (потому конкретно прописать Encoding(.. имя кодировки ..) не получится), так вот, существует ли способ, как каждый такой текст переводить строго в UTF-8?

Например подход из этого ответа явно не подойдёт https://ru.stackoverflow.com/questions/1334450/c-%...
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 3
@rPman
Кодировку можно определить аналитически по содержимому, метод не 100%. Можно взять готовую утилиту командной строки enca, она умеет большое количество кодировок и языков, в т.ч. дважды перекодированные (например взяли dos 866 кодировку, открыли в cp1251, и сохранили в utf8, по крайней мере такие финты при копировании текста с коряво настроенных веб сайтов, работали).
Ответ написан
Комментировать
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Кодировок очень много всяких и в идеале надо для каждой кодировки писать свой код детектирования. Проще собрать словари слов для всех кодировок и прогонять текст через все кодировки и анализировать результат. И вот в той, в которой больше всего получилось слов из словаря - та, возможно, и есть нужная.
Ответ написан
Комментировать
@alexalexes
Если текст написан символами только из 7-битного диапазона (классический английский текст), то кодировку вы не определите. Он будет нормально читаться в любой кодировке. Вам все равно придется выбирать ту кодировку, свойственную текущему программному окружению.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы