问题:使用一台Linux系统的机器,终端总是显示有乱码,不是中文乱码,看起来像是英文乱码,我这强迫症又受不了了
解决方案:
Linux字符编码默认为UTF-8,如果出现英文乱码有可能是系统设置的编码方式为GBK。
设置locale的根本就是设置一组总共12个LC开头的变量,不包括LANG和LC_ALL。
优先 级:LC_ALL >LC_* >LANG
可以看出原系统设置的为中文字体显示和运行的语言环境,所有的设置都是使用的 zh_CN.gbk ,因中英文字符编码方式不同,可能造成英文字符或者空格显示有乱码。
5.退出后再次查看locale(再次登录才生效)
乱码的字符消失了。locale转变为:
一·查看字符集字符集在系统中体现形式是一个环境变量,以CentOS6.5为例,其查看当前终端使用字符集的方式可以有以下几种方式:
1、[root@david ~]# echo $LANG
zh_CN.GB18030
2、[root@david ~]# env |grep LANG
LANG=zh_CN.GB18030
LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN
3、[root@david ~]# export |grep LANG
declare -x LANG="zh_CN.GB18030"
declare -x LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
4、[root@david ~]# 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就该这么学》,其查看当前终端使用字符集的方式可以有以下几种方式:1、[root@ ~]# echo $LANG
en_US.UTF-8
2、[root@ ~]# env |grep LANG
LANG=en_US.UTF-8
3、[root@david ~]# export |grep LANG
declare -x LANG="en_US.UTF-8"
4、[root@ ~]# locale -a //查看本地字符集
[root@ ~]# locale -m //查看所有支持的字符集
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)