Я использую сервер (по ssh), и поскольку я французский, я бы хотел использовать символы, такие как «à», «ç» и «é». Однако они просто не могут быть напечатаны на стандартном выходе, будь то когда я нажимаю соответствующую клавишу на моей клавиатуре (она просто игнорирует ключ) или когда я запускаю сценарий, который должен их печатать. Например, скрипт Python будет повышаться:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-3: ordinal not in range(128)
Следуя некоторым советам, я посмотрел на язык:
$ locale
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
Итак, я открыл файл / etc / default / locale и изменил его с:
LANG="C"
до
LANG=fr_FR.UTF-8
Он по-прежнему не работает, но вызов локали теперь говорит мне:
$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
[d11 ] Любые идеи, как я мог это исправить? Вам также нужно избавиться от этих ошибок локали, создав локаль fr_FR.UTF-8:
sudo locale-gen fr_FR.UTF-8