【LC】locale設定查詢及相關環境變數含義及示例

fjzcau發表於2012-04-30
1.檢視當前本機的設定情況
ora10g@testdb /home/oracle$ locale
LANG=zh_CN.GB18030
LC_CTYPE="zh_CN.GB18030"
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"[@more@]LC_COLLATE="zh_CN.GB18030"
LC_MONETARY="zh_CN.GB18030"
LC_MESSAGES="zh_CN.GB18030"
LC_PAPER="zh_CN.GB18030"
LC_NAME="zh_CN.GB18030"
LC_ADDRESS="zh_CN.GB18030"
LC_TELEPHONE="zh_CN.GB18030"
LC_MEASUREMENT="zh_CN.GB18030"
LC_IDENTIFICATION="zh_CN.GB18030"
LC_ALL=

2.解釋一下上面出現的比較常用的Locale環境變數含義
LANG 未設定任何LC_XXX變數時所使用的預設值
LC_ALL 用來覆蓋掉所有其他LC_XXX變數的值,一經設定其他的都無效!
LC_COLLATE 使用所指定地區的排序規則
LC_CTYPE 使用所指定地區的字符集(字母、數字、標點符號等)
LC_MESSAGES 使用所指定地區的響應與資訊;僅POSIX適用
LC_MONETARY 使用所指定地區的貨幣格式
LC_NUMERIC 使用所指定地區的數字格式
LC_TIME 使用所指定地區的日期與時間格式

上面這些變數設定效果優先順序是:LC_ALL > LC_* > LANG

3.我的Linux作業系統上有這麼一個神奇資料夾,叫做i18n(它是國際化單詞internationalization的縮寫,去掉第一個字母i和最後一個字母n中間正好有18個字母,發散思維一下,L10n就是localization本地化的縮寫啦)
$ ls -l /usr/share | grep i*n
drwxr-xr-x 4 root root 4096 06-23 10:35 i18n

這個目錄中有多達243個locale定義檔案(244減去一個檔案提示頭資訊)
ora10g@testdb /usr/share/i18n/locales$ ls -l | wc -l
244
4.下面命令列出系統認得出來的locale名稱
ora10g@testdb /home/oracle$ locale -a
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
aa_ER
……這裡省略N多行內容……
zu_ZA
zu_ZA.iso88591
zu_ZA.utf8

5.知道了這些知識以後,看一個具體的設定場景(這個場景曾經困擾過我很長時間)
要求:
1)可以輸入中文
2)同時保持選單、標題,系統資訊等內容仍然是英文介面
實現:
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.GB18030"

這兩個引數可以在root使用者下新增到/etc/sysconfig/i18n引數檔案中,以達到永久生效的目的。
重啟後的效果:
ora10g@testdb /home/oracle$ locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030
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=
-- The End --

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

相關文章