Кодировки символов ISO 8858 немного устарели для систем Linux. Ваша целая система Linux, вероятно, использует UTF-8 полностью. Включая Ваш эмулятор терминала и Вашу оболочку.
Как бы то ни было. cat
, grep
и less
не делайте никакого преобразования кодирования, они будут рассматривать Ваш ISO-8859/latin1 файл как UTF-8, который не будет работать.
Если emacs может отобразить их, это - потому что это пытается автоматически обнаружить используемое кодирование и по-видимому успешно выполниться. Скажите emacs сохранить файл как UTF-8, и Вы сможете использовать cat
/grep
/ безотносительно на нем.
Если Вы знаете точную кодировку символов (ISO 8859 является набором их, необходимо знать точный: ISO-8859-1 или ISO-8859-15 или хуже), можно также преобразовать файлы из командной строки:
iconv --from-code ISO-8859-15 your_file -o your_file_as_utf8