Некоторые символы не могут быть напечатаны в стандартном выводе [дубликат]

Я использую сервер (по 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=

Есть идеи, как я могу это исправить?

1
задан 12 October 2016 в 12:15

2 ответа

Проблема была решена следующими командами:

sudo update-locale LANGUAGE=fr_FR.UTF-8
sudo update-locale LANG=fr_FR.UTF-8
1
ответ дан 7 December 2019 в 13:41

Необходимо избавиться от тех ошибок локали также путем генерации fr_FR.UTF-8 локали:

sudo locale-gen fr_FR.UTF-8
1
ответ дан 7 December 2019 в 13:41

Другие вопросы по тегам:

Похожие вопросы: