
У меня есть новая установка Ubuntu Server 16.04, и сейчас я тестирую, как она обрабатывает символы Unicode:
- У меня есть имя файла, содержащее символ юникода:
testā.txt
. Если я выбираю его с помощью табуляции, то есть$ rm tes[tab]
, то команде подбирается правильное имя файла. - Если я это сделаю
$ ls
, я увижуtest??.txt
в списке файлов - Если я добавлю символы Юникода к содержимому файла с помощью
$ echo āāā > test.txt
, а затем сделаю$ cat test.txt
, я получу правильный вывод. - Однако если я открою файл в редакторе nano, его содержимое будет выглядеть так:
^ ^ ^
. - Шестнадцатеричный дамп
$ xxd test.txt
показывает, что символы Юникода сохранены в файле правильно:c481 c481 c481 0a
Терминальная программа, которую я использую (Guake), никогда не имела проблем с символами юникода. В типичной локальной терминальной сессии нет ни одной из проблем, описанных выше.
Призвание env | sort | grep -E '^(LANG(UAGE)?|LC_\w*)='
дает
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ADDRESS=lv_LV.UTF-8
LC_IDENTIFICATION=lv_LV.UTF-8
LC_MEASUREMENT=lv_LV.UTF-8
LC_MONETARY=lv_LV.UTF-8
LC_NAME=lv_LV.UTF-8
LC_NUMERIC=lv_LV.UTF-8
LC_PAPER=lv_LV.UTF-8
LC_TELEPHONE=lv_LV.UTF-8
LC_TIME=lv_LV.UTF-8
Это можно исправить с помощью настроек локали сервера? Или есть какой-то параметр, который нужно использовать при инициировании сеанса ssh?