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

У меня есть файлы .txt и .java, и я не знаю, как определить таблицу кодирования файлов (Unicode, UTF-8, ISO-8525,...). Существует ли какая-либо программа для определения кодировки файла или для просмотра кодировки?

Ответ 1

Если вы работаете в Linux, попробуйте file -i filename.txt.

$ file -i vol34.tex 
vol34.tex: text/x-tex; charset=us-ascii

Для справки, вот моя среда:

$ which file
/usr/bin/file
$ file --version
file-5.09
magic file from /etc/magic:/usr/share/misc/magic

Некоторые версии file (например, файл-5.04 на OS X/macOS) имеют несколько разные ключи командной строки:

$ file -I vol34.tex 
vol34.tex: text/x-tex; charset=us-ascii
$ file --mime vol34.tex
vol34.tex: text/x-tex; charset=us-ascii

Также посмотрите здесь.

Ответ 2

Откройте файл с помощью Notepad ++ и увидите в правом нижнем углу имя таблицы кодировки. А в кодировке меню вы можете изменить таблицу кодирования и сохранить файл.

Ответ 3

Вы не можете надежно обнаружить кодировку из текстового файла - что вы можете сделать, это сделать чтобы найти не-ascii char и попытаться определить, является ли это комбинация unicode, которая делает чувство на языках, которые вы разыгрываете.

Ответ 4

См. этот вопрос и выбранный ответ. У них нет уверенного способа сделать это. В лучшем случае вы можете это выпустить. Кодировки UTF вряд ли получат ложные срабатывания, но 8-битные кодировки жесткие, особенно если вы не знаете начальный язык. Никакой инструмент в настоящее время не обрабатывает все стандартные 8-битные кодировки с компьютеров Mac, Windows, Unix, но выбранный ответ обеспечивает алгоритмический подход, который должен адекватно работать для определенного подмножества кодировок.

Ответ 5

В текстовом файле отсутствует заголовок, который сохраняет кодировку или так. Вы можете попробовать выполнить команду linux/unix find, которая пытается угадать кодировку:

file -i unreadablefile.txt

или на некоторых системах

file -i unreadablefile.txt

Но это часто дает вам text/plain; charset=iso-8859-1, хотя файл нечитабелен (криптографические глифы).

Это то, что я сделал, чтобы найти правильную кодировку файла для нечитаемого файла, а затем перевести его в utf8 после установки iconv. Сначала я пробовал все кодировки, отображая (grep) строку, содержащую слово www. (адрес веб-сайта):

for ENCODING in $(iconv -l); do echo -n "$ENCODING "; iconv -f $ENCODING -t utf-8 unreadablefile.txt 2>/dev/null| grep 'www'; done | less

В этой последней командной строке показана проверенная кодировка файла, а затем переведенная/перекодированная строка.

Были некоторые строки, которые показывали читаемость и согласованность (по одному языку за раз). Я попробовал вручную некоторые из них, например:

ENCODING=WINDOWS-936; iconv -f $ENCODING -t utf-8 unreadablefile.txt -o test_with_${ENCODING}.txt

В моем случае это была китайская кодировка окон, которая теперь читается (если вы знаете китайский).