歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux字符集的問題

Linux系統登錄或是遠程操作時或者有時候當我們在字符終端下使用man 查看某個命令的說明文檔時,其內容可能會因包含類似於“<A1><AE>”的一些亂碼。在這種情況下,可以使用下面命令消除亂碼:

 [[email protected] ~]$ unset LANG

 這個是什麼問題呢?這個就不得不得說一個概念——字符集,

為何說道字符集,引用一段話:“locale 是國際化與本土化過程中的一個非常重要的概念,個人認為,對於中文用戶來說,通常會涉及到的國際化或者本土化,大致包含三個方面:看中文,寫中文,與 window中文系統的兼容和通信。從實際經驗上看來,locale的設定與看中文關系不大,但是與寫中文,及window分區的掛載方式有很密切的關系。”
 
 一·查看字符集
 字符集在系統中體現形式是一個環境變量,以RedHat為例(bshell)其查看當前終端使用字符集的方式可以有以下幾種方式:
 1)[[email protected] ~]$env |grep LANG
 LANG=zh_CN.GB18030
 2) [[email protected] ~]$ export |grep LANG
 declare -x LANG="zh_CN.GB18030"
 3)還有一個很強大的命令:locale
 [[email protected] ~]$ locale
 LANG=zh_CN.GB18030
 LC_CTYPE="zh_CN.GB18030"
 LC_NUMERIC="zh_CN.GB18030"
 LC_TIME="zh_CN.GB18030"
 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=
 上面均說明LC_CTYPE(字符辨識編碼)表示這個系統的系統現在使用的字符集是zh_CN.GB18030,LC_NUMERIC(數字系統的顯示訊息)等其它與語言相關的變量。通常如果其它的語言變量都未設定,僅設定LANG這個變量就可以缺省代替所有其它變量了。

關於Linux字符集的查看及修改 http://www.linuxidc.com/Linux/2014-03/97777.htm
 
 二、修改字符集的方式
 如果默認語言是en_US.UTF-8,在Linux的字符和圖形界面下都是無法顯示和輸入中文的。如果默認語言是中文,比如zh_CN.GB18030 或者zh_CN.gb2312,字符界面無法顯示和輸入,圖形界面可以。
 修改的方式有如下兩種:
 1).直接設置變量的方式修改,命令如下兩條命令:
 [[email protected] ~]$LANG=xxx 或者  export  LANG=xxx;
 [[email protected] ~]$LC_ALL=”xxx”  或者  export LC_ALL=”xxx”;
 注:xxx為欲修改為的字符集
 查看標准的字符集的方法,locale –a命令,常用的有zh_CN.GB2312、
 zh_CN.GB18030或者zh_CN.UTF-8、en_US.UTF-8等
 但是上述修改方式只會在當前shell中生效。新建shell此環境變量消失
 故平時登錄系統的執行“LANG= ”這個命令的時候顯示的就沒有亂碼的緣故,意思就是取消了字符集的顯示,和開篇提到的是一個意思
 2)、修改文件方式,通過修改/etc/sysconfig/i18n文件控制
 [[email protected] ~]$ vi /etc/sysconfig/i18n
 LANG="zh_CN.GB18030"    #==>此處即為系統的語言
 SUPPORTED="zh_CN.UTF-8:zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en" 
 SYSFONT="lat0-sun16"
 修改文件保存退出之後要生效要執行如下命令才可生效
 [[email protected] ~]$ source /etc/sysconfig/i18n
 用戶登錄shell的時候會讀取其中的設定值的

Copyright © Linux教程網 All Rights Reserved