linux服務器默認使用中文字符集zh_CN.UTF-8
一.問題描述和相關概念
linux服務器的字符集設置可能影響到網站頁面出現 “???” 等問號亂碼,還有可能導致文件中的漢字部分出現亂碼。
locales設置:語言設置選項
linux真的是一個非常強大的系統,windows如果要更改語言系統,必須要重新安裝軟件, 這就是windows存在多國語言版 的原因。而linux非常方便,我們可以通過locales設置,將linux從英文版更改為中文版,下面我們來看看如何更改語言設置。
二.原因
簡單的說是因為服務器沒有安裝zh_CN.UTF-8 字符集,導致不支持中文!
locale //執行這個命令,查看和語言編碼有關的環境變量
顯示如下:
LANG=
LANGUAGE=en_US:en
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
可以看到大多數都默認為POSIX 類型的,這時可以改服務器的默認字符集為zh_CN.UTF-8(我測試過改了沒問題哦,可以解決漢字亂碼問題。如果能通過設置SecureCrt等終端可以解決的話,就沒必要改了)
三.解決辦法
環境:Ubuntu 12.04.5 LTS \n \l
1.安裝基本的軟件包(第2步安裝 zh_CN 中文字符集時要用到)
sudo apt-get update //ubuntu系統更新軟件包列表
sudo apt-get install -y language-pack-zh-hans
sudo apt-get install -y language-pack-zh-hant
2.
cd /usr/share/locales
sudo ./install-language-pack zh_CN //開始安裝zh_CN中文字符集
3. 編輯 sudo vim /etc/environment //環境變量配置文件
添加下面zh_CN.UTF-8有關的環境變量,添加完就變成默認的了哦:
LANG=zh_CN.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
4.重新登錄一次shell
source /etc/environment //使剛才添加的環境變量生效。如果不重新登錄shell的話,執行此命令可能會報錯哦,我試過了!
四.簡單看下成果
1.locale 命令看下輸出結果吧!
2.也可以進入 /var/lib/locales/supported.d
cat local
顯示:
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
而沒有安裝中文之前只顯示:
en_US.UTF-8 UTF-8
注:locale -a 可以查看操作系統支持的字符集。