解決Ubuntu中文顯示為亂碼(僅供參考其中方法,并不一定能解決)

1. 安裝所需軟件

sudo?apt-get?-y?install?language-pack-zh-hanssudo apt-getinstallzh-autoconvert

sudo apt-getinstallzhcon


2. 配置系統(tǒng)

$ vi /var/lib/locales/supported.d/local加入

zh_CN.GBKGBK

zh_CN.GB2312 GB2312

zh_CN.UTF-8UTF-8

$ sudo locale-gen


3. 修改ubuntu的字符集

方法一: 修改用戶目錄下的.profile或.bashrc文件,增加以下內(nèi)容:

LANGUAGE=”zh_CN:zh:en_US:en”

LANG=zh_CN.UTF-8


重新登錄即可。

這個方法只對該用戶有效。

方法二:修改/etc/environment,增加以下內(nèi)容:

LANGUAGE=”zh_CN:zh:en_US:en”

LANG=zh_CN.UTF-8


然后重啟X即可

這個方法對沒有設(shè)置LANG及LANGUAGE環(huán)境變量的用戶有效

參考:

http://blog.csdn.net/zjc156m/article/details/9095297

http://blog.csdn.net/xieyan0811/article/details/7530962

http://www.linuxidc.com/Linux/2014-02/96939.htm

==============補(bǔ)充=======================

要想達(dá)到應(yīng)用程序中正常顯示中文字符的目的,要下面的三個變量應(yīng)該如下,


LANG=zh_CN.UTF-8? ?

LANGUAGE=zh_CN:zh:en_US:en? ?

LC_ALL=LC_ALL=zh_CN.UTF-8

但問題在于“LC_ALL to default locale: No such file or directory”和“LC_ALL: cannot change locale (zh_CN.UTF-8) ”,因此重新安裝中文語言包。

執(zhí)行下面命令

sudoapt-get?-y?installlanguage-pack-zh-hans

sudoapt-get?-y?installlanguage-pack-zh-hans?language-pack-zh-hans-base

如果想支持繁體字,則執(zhí)行

sudoapt-get?-y?installlanguage-pack-zh-hant

sudoapt-get?-y?installlanguage-pack-zh-hant?language-pack-zh-hant-base

再執(zhí)行l(wèi)ocale命令設(shè)置當(dāng)前l(fā)ocale環(huán)境

locale

相關(guān)的文件和參考

相關(guān)手冊:man locale(1), locale(5), locale(7)

相關(guān)文件:/usr/share/i18n/SUPPORTED

相關(guān)命令:

locale --all-locales 列出當(dāng)前系統(tǒng)中所有支持的locale

localectl list-locales 列出當(dāng)前系統(tǒng)中所有可用的locale

localectl set-locales LOCALE... 修改當(dāng)前系統(tǒng)中的locale,與locale功能相同,與export上文提到的三個變量相同

對于CentOS,可以直接編輯/etc/sysconfig/i18n文件,將LANG="en_US.UTF-8"設(shè)置成LANG="zh_CN.UTF-8",除此之外,CentOS下locale命令的顯示結(jié)果如下:

#?locale

LANG=en_US.UTF-8

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=

其中,LC_ALL=為空,但并不是表示這里不對,而是LC_ALL=實(shí)際上等于LC_COLLATE、LC_CTYPE、LC_MONETARY、LC_MESSAGES、LC_NUMERIC、LC_TIME,參見locale(7)。

==============補(bǔ)充=======================

我是先安裝了Ubuntu12.04 Server,然后安裝桌面。進(jìn)入以后發(fā)現(xiàn)中文有問題。

解決方法:

一. Ubuntu默認(rèn)的中文字符編碼

Ubuntu默認(rèn)的中文字符編碼為zh_CN.UTF-8,這個可以在

/etc/environment中看到:

sudo gedit /etc/environment

可以看到如下內(nèi)容:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

LANG="zh_CN.UTF-8"

LANGUAGE="zh_CN:zh:en_US:en"第二行即是默認(rèn)的中文字符編碼。注:可以通過這里修改默認(rèn)的中文編碼字符,比如修改為:zh_CN.GBK。

二. 添加中文字符編碼的方法

1. 直接使用locale-gen

在終端輸入命令:

sudo locale-gen zh_CN.GB18030

即可完成中文字符集的添加。完成后可以轉(zhuǎn)到

/usr/lib/locale/,下面已經(jīng)有一個zh_CN.gb18030文件夾;在超級終端輸入命令:

gedit /var/lib/locales/supported.d/local,可以發(fā)現(xiàn)文件中多了一行:zh_CN.GB18030 GB18030。說明添加成功。

2. 通過修改/var/lib/locales/supported.d/local文件

在終端輸入命令行

sudo gedit /var/lib/locales/supported.d/local

可以看到如下內(nèi)容:

zh_CN.UTF-8 UTF-8

en_US.UTF-8 UTF-8

在文件尾添加中文字符集

zh_CN GB2312

保存后退出。在終端輸入命令:

sudo dpkg-reconfigure locales

最后重啟ubuntu。

重啟后在系統(tǒng)設(shè)置--語言設(shè)置里面需要勾選中文,就會自動下載中文包,安裝完成后再次重啟就ok了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容