Linux字符集問題

keeptrying發表於2013-01-24

一、常見字符集

GB2312又稱為GB2312-80字符集,全稱為《資訊交換用漢字編碼字符集·基本集》。由原中國國家標準總局釋出,198151日實施。GB2312是中國國家標準的簡體中文字符集。

GB 18030的全稱是GB18030-2000《資訊交換用漢字編碼字符集基本集的擴充》,是我國政府於2000317日釋出的新的漢字編碼國家標準,2001831日後在中國市場上釋出的軟體必須符合本標準。

GBK 向下與 GB 2312 編碼相容,GBK編碼是在GB2312-80標準基礎上的內碼擴充套件規範。

Unicode字符集編碼是Universal Multiple-Octet Coded Character Set 通用多八位編碼字符集的簡稱,是由一個名為 Unicode 學術學會(Unicode Consortium)的機構制訂的字元編碼系統,支援現今世界各種不同語言的書面文字的交換、處理及顯示。。該編碼於1990年開始研發,1994年正式公佈,最新版本是2005331日的Unicode 4.1.0

Unicode是一種在計算機上使用的字元編碼。它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,以滿足跨語言、跨平臺進行文字轉換、處理的要求。

UTF-8Unicode的其中一個使用方式。 UTF Unicode Translation Format,即把Unicode轉做某種格式的意思。UTF-8便於不同的計算機之間使用網路傳輸不同語言和編碼的文字

 

二、檢視字符集

字符集在系統中體現形式是一個環境變數,以redhat為例(bshell)其檢視當前終端使用字符集的方式可以有以下幾種方式:

1[root@localhost ~]# env | grep LANG

LANG=zh_CN.GB2312

2[root@localhost ~]# export | grep LANG

declare -x LANG="zh_CN.GB2312"

3、強大的命令:locale

[root@localhost ~]# locale

LANG=zh_CN.GB2312

LC_CTYPE="zh_CN.GB2312"

LC_NUMERIC="zh_CN.GB2312"

LC_TIME="zh_CN.GB2312"

LC_COLLATE="zh_CN.GB2312"

LC_MONETARY="zh_CN.GB2312"

LC_MESSAGES="zh_CN.GB2312"

LC_PAPER="zh_CN.GB2312"

LC_NAME="zh_CN.GB2312"

LC_ADDRESS="zh_CN.GB2312"

LC_TELEPHONE="zh_CN.GB2312"

LC_MEASUREMENT="zh_CN.GB2312"

LC_IDENTIFICATION="zh_CN.GB2312"

LC_ALL=

 

三、修改字符集

檢視系統支援的字符集:locale –a

常用的有zh_CN.GB2312zh_CN.GB18030zh_CH.UTF-8en_US.UTF-8等。

locale的命名規則為<語言>_<地區>.<字符集編碼>,如zh_CN.UTF-8zh代表中文,CN代表大陸地區,UTF-8表示字符集。

 

1、直接設定變數的方式修改

LANG=xxx      export LANG=xxx

LC_ALL=”xxx”     export LC_ALL=”xxx”

其中xxx為要修改的字符集。

但是這樣的修改方式只會在當前shell中生效。新建shell此環境變數消失。

2、修改/etc/sysconfig/i18n檔案

I18N internationalization 的縮寫形式,意即在 i n 之間有 18 個字母,本意是指軟體的“國際化”

I18N支援多種語言,但是同一時間只能是英文和一種選定的語言,例如英文+中文、英文+德文、英文+韓文等等;

 

[root@localhost ~]# vi /etc/sysconfig/i18n

LANG="zh_CN.UTF-8"

SUPPORTED="zh_CN.GB18030:zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"

SYSFONT="latarcyrheb-sun16"

 

第一行,表明當前系統的語言環境變數設定;

第二行,表明系統預置了那些語言支援,不在專案中的語言不能正常顯示;

第三行,定義控制檯終端字型,文字登入的時候顯示地字型。

修改後要執行如下命令才可生效:

[root@localhost ~]# source /etc/sysconfig/i18n

 

可以只修改個人的字符集,而不影響其他使用者:

cp /etc/sysconfig/i18n $HOME/.i18n

然後修改$HOME/.i18n檔案即可。

 

 

 

 

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25744374/viewspace-753224/,如需轉載,請註明出處,否則將追究法律責任。

相關文章