如何修復區域設定錯誤

如何修復區域設定錯誤

我剛剛使用 全新安裝了 ubuntu debootstrap。當我這樣做時sudo aptitude upgrade,我收到此錯誤訊息:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LANG = "en_US.ISO-8859-1"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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

有人可以告訴我如何解決這個問題嗎?我在網上看到很多與此類似的帖子,但似乎都沒有解決問題。

我在用Ubuntu 14.04 LTS。謝謝。


供參考:

$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.iso88591
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX

$ locale
LANG=en_US.ISO-8859-1
LANGUAGE=en_US:en
LC_CTYPE="en_US.ISO-8859-1"
LC_NUMERIC="en_US.ISO-8859-1"
LC_TIME="en_US.ISO-8859-1"
LC_COLLATE="en_US.ISO-8859-1"
LC_MONETARY="en_US.ISO-8859-1"
LC_MESSAGES="en_US.ISO-8859-1"
LC_PAPER="en_US.ISO-8859-1"
LC_NAME="en_US.ISO-8859-1"
LC_ADDRESS="en_US.ISO-8859-1"
LC_TELEPHONE="en_US.ISO-8859-1"
LC_MEASUREMENT="en_US.ISO-8859-1"
LC_IDENTIFICATION="en_US.ISO-8859-1"
LC_ALL=

答案1

Ubuntu 桌面應設定為 UTF-8 編碼。由於某種原因,您的系統嘗試設定 latin1 語言環境 en_US.ISO-8859-1。你真的應該改變這一點。

也許設定發生在/etc/default/locale

無論發生在哪裡,將其更改為

LANG=en_US.UTF-8

否則你會遇到各種與語言環境相關的驚喜。

答案2

區域設定問題的永久解決方案是將區域設定變數匯出到~/.bash_profile.您也可以使用/etc/profilefile 而不是.bash_profile讓變更對系統上的所有使用者生效。

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
" >> ~/.bash_profile

不要忘記啟動一個新的 shell 或手動啟動source ~/.bash_profile

答案3

不會debootstrap創建語言環境。所以我們使用其他東西作為語言環境。使用這個指令:

sudo locale-gen en_US.ISO-8859-1

我希望這有幫助!

答案4

新增LC_ALL="en_US.UTF-8"/etc/environment重新啟動實例/機器

欲了解更多信息,請訪問此博客

http://www.pixelninja.me/how-to-fix-invalid-locale-setting-in-ubuntu-14-04-in-the-cloud/

相關內容