Проблема, которую я пытаюсь решить, заключается в том, что в терминале сеанса ssh на компьютере с OS X выходные данные команды ls не могут правильно отображать китайские символы в кодировке utf8 в именах файлов (показывая что-то вроде ???). Клиент SSH я использую securecrt и putty на ОС Windows (оба настроены на использование кодировки utf8). У них обоих есть эта проблема. С другой стороны, символы utf8 в содержимом файла могут отображаться правильно (как через vim и cat), а функция автозаполнения bash также может правильно отображать символы utf8 в именах файлов (оба в списке кандидатов при наличии нескольких кандидатов, и в имени файла, которое заполняется автоматически, когда есть только один кандидат.)

Итак, вопрос в том, как заставить ls правильно отображать имена файлов в кодировке utf8 в терминале сеанса ssh на компьютере с OS X?

2 ответа2

0

Эта проблема обычно возникает из-за переменных среды, поэтому сначала проверьте ее. введите env вы можете получить результат. В моем случае набор LANG(export LANG=en_US.UTF-8) просто работает.

0

Для Putty: на целевой машине OSX найдите переменную среды LC_CTYPE (echo $LC_CTYPE). Это должен быть UTF-8 или что-то вроде en_EN.UTF-8. (Если это только что-то вроде "en_EN", тогда оно установлено на ISO. В этом случае измените его на en_EN.UTF-8 , добавив EXPORT LC_CTYPE=en_EN.UTF-8 в ваш $ HOME/.bash_profile). На вашем компьютере с Windows в Putty перейдите в конфигурацию -> окно /перевод и там выберите тот же набор символов, что и env var на вашем компьютере с OSX. Если параметры env var на сервере и putty совпадают, это должно работать.

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