У меня есть файл Unicode, содержащий китайские символы. У меня есть локальная и удаленная копии.
Когда я использую less
в локальном файле символы отображаются правильно:
奥尔德林
Однако когда я ssh
на удаленный компьютер и посмотрите на удаленную версию того же файла, символы вместо этого показаны так:
<E5><A5><A5><E5><B0><94><E5><BE><B7><E6><9E><97>
Как правильно просмотреть удаленный файл Unicode (при подключении через ssh
)?
(Я использую стандартное терминальное приложение в Mac OS.)
Правильно ли отображается файл, если вы cat
это (или использовал head
чтобы сократить выход)?
Я думаю ключ к созданию less
отображение файла правильно лежит в настройке LANG
или LC_ALL
должным образом. В вашей локальной системе и удаленной системе сравните значения этих переменных и посмотрите, отличаются ли они друг от друга и имеет ли значение изменение удаленной на соответствие.
Из less
страница руководства (обратите внимание на последнее предложение):
If neither LESSCHARSET nor LESSCHARDEF is set, but any of the strings "UTF-8", "UTF8", "utf-8" or "utf8" is found in the LC_ALL, LC_TYPE or LANG environment variables, then the default character set is utf-8. If that string is not found, but your system supports the setlocale interface, less will use setlocale to determine the character set. setlocale is controlled by setting the LANG or LC_CTYPE environment variables. Finally, if the setlocale interface is also not available, the default character set is latin1. Control and binary characters are displayed in standout (reverse video). Each such character is displayed in caret notation if possible (e.g. ^A for control-A). Caret notation is used only if inverting the 0100 bit results in a normal printable character. Otherwise, the char‐ acter is displayed as a hex number in angle brackets.