mbp:Desktop alexus$ file $$.txt
235.txt: ISO-8859 text, with CRLF line terminators
mbp:Desktop alexus$ 

Но на самом деле это не ISO-8859, а 8859-5 (русский).

Файл открывается в Windows очень хорошо (я вижу русские символы), а на Mac я получаю либо неизвестные символы, либо вопросительные знаки.

Есть ли решение?

2 ответа2

2

Чтобы открыть файл без преобразования его кодировки, вам нужно будет найти способ указать кодировку файла для любой программы, которая его открывает.

Вам следует избегать двойного щелчка по файлу и вместо этого напрямую использовать пункт меню «Открыть…» (обычно ⌘O или «Открыть… в меню« Файл ») приложения, которое вы хотите использовать для просмотра / редактирования файла. Если приложение способно читать файлы в других кодировках, оно, вероятно, позволит вам указать кодировку в диалоговом окне «Открыть…» (аналогично, они должны позволить вам указать (возможно, другую) кодировку при использовании «Сохранить как…»).

Например, TextEdit имеет раскрывающийся список «Кодировка обычного текста» в нижней части диалогового окна «Открыть…». Если ISO 8859-5 отсутствует в списке, вам может потребоваться выбрать «Настроить список кодировок…», чтобы добавить его в список. Вы можете выбрать «кириллица (ISO 8859-5)», «кириллица (Windows)», «кириллица (KOI8-R)» или что-то еще (используйте 8859-5, если вы уверены, что это кодировка, в противном случае я не являюсь уверен, что назначения кодовых точек других кириллических кодировок вообще похожи).

Терминал обычно ожидает символы в кодировке UTF-8, поэтому вам следует перекодировать данные в UTF-8, если вы просто хотите «перехватить» файл.

iconv -f ISO-8859-5 -t UTF-8 < filename

Вы также можете использовать iconv, чтобы сохранить копию преобразованного файла (вам может быть проще работать с файлом UTF-8, так как многие программы по умолчанию будут декодировать файл как UTF-8):

iconv -f ISO-8859-5 -t UTF-8 < filename > filename.utf8.txt

Вы можете получить полный список кодировок, которые iconv поддерживает с помощью iconv -l .

Если вы хотите использовать программу для просмотра / редактирования файла в Терминале, то шаги (опять же) зависят от программы, которую вы используете. Вы можете сделать это в Vim следующим образом:

vim -c 'e ++enc=iso-8859-5 filename'

Или, если Vim уже запущен:

:e ++enc=iso-8859-5 filename

Вы можете получить список кодировок, с которыми Vim знает :help *encoding-names* .

0

Используйте iconv чтобы конвертировать файл в UTF-8.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .