Привет. Я получаю некоторые предупреждения при запуске perl:

perl -e 'print "Hello\n";'
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Бег:

export LC_ALL=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

исправляет предупреждения для текущего сеанса оболочки

Есть ли какое-то постоянное решение?

2 ответа2

1

Попробуйте dpkg-reconfigure locales .

0

У меня возникла именно эта проблема, и в Debian это можно сделать с помощью утилиты update-locale

update-locale --reset

приведет к игнорированию файла /etc/default/locale (он просто закомментирует переменную LANG ); в результате чего 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=C

update-locale LANG=en_US.UTF-8

установит для LANG значение LANG на ... как вы уже догадались, en_US.UTF-8 приведет к генерации locale :

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

И, наконец, просто чтобы охватить все мои базы ...

update-locale LANG=C

установит для LANG значение LANG в C приведет к 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=

Я также включил это в Unix, что я мог попытаться помочь, потому что это сводило меня с ума. ОКР и все. -Эрик

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