Я использую сервер (по 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=
Есть идеи, как я могу это исправить?
Проблема была решена следующими командами:
sudo update-locale LANGUAGE=fr_FR.UTF-8
sudo update-locale LANG=fr_FR.UTF-8
Необходимо избавиться от тех ошибок локали также путем генерации fr_FR.UTF-8 локали:
sudo locale-gen fr_FR.UTF-8