一.問題描述和相關概念php
linux服務器的字符集設置可能影響到網站頁面出現 「???」 等問號亂碼,還有可能致使文件中的漢字部分出現亂碼。html
locales設置:語言設置選項
linux真的是一個很是強大的系統,windows若是要更改語言系統,必需要從新安裝軟件, 這就是windows存在多國語言版 的緣由。而linux很是方便,咱們能夠經過locales設置,將linux從英文版更改成中文版,下面咱們來看看如何更改語言設置。linux
二.緣由shell
簡單的說是由於服務器沒有安裝zh_CN.UTF-8 字符集,致使不支持中文!ubuntu
locale //執行這個命令,查看和語言編碼有關的環境變量vim
顯示以下:windows
LANG=服務器
LANGUAGE=en_US:enapp
LC_CTYPE="POSIX"post
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 能夠查看操做系統支持的字符集。