2010-11-23 4 views
33

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

+0

Возможный дубликат [Как надежно угадать кодировку между MacRoman, CP1252, Latin1, UTF-8 и ASCII] (http://stackoverflow.com/questions/4198804/how-to-reliably-guess-the- encoding-between-macroman-cp1252-latin1-utf-8-and-a) – tchrist 2010-11-23 11:19:26

ответ

39

Если вы работаете в 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 

Также посмотрите here.

+2

он возвращает: somefile.txt: обычный файл – benroth 2014-02-26 04:14:42

9

Вы не можете надежно определить кодировку из текстового файла - то, что вы можете сделать, это сделать догадку, ища не-ASCII полукокса и пытается определить, является ли это юникода комбинация, которая делает Sens в языки, которые вы разбираете.

3

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

22

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

0

В текстовом файле нет заголовка, который сохраняет кодировку или около того. Вы можете попробовать 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 

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

Смежные вопросы