UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别

en_US.UTF-8、zh_CN.UTF-8叫做字符集,就是说‘A’、‘B’、‘中’、‘国’等对应的整数值,
en_US.UTF-8只包含了ASCII码,zh_CN.UTF-8包含了6000多个汉字?
如果是这样的话,那所谓UTF-8,就是把这些整数,编写成一串字节的方法?

 

UTF-8 是编码方式

 

en_US.UTF-8 和 zh_CN.UTF-8 是语言环境,也就是字符集

 

en_US.UTF-8 和 zh_CN.UTF-8 包含的字符数量是基本上一样的,大概是七万个汉字,编码都是 UTF-8 编码,字符集是 Unicode,版本是 4.1 吧?zh_CN.GB18030 和 zh_CN.GBK 的字符集都与 Unicode 3 是等价的,记得应该是这样
语言环境的差别就是另一回事了,中国人和外国人表示时间啦,数字啦,习惯都不一样,所以必须区分开。大部分程序根据语言环境变量来选择界面的语言是中文还是英文。

 

 

 

所以一般linux系统的语言环境设置成:export LANG=zh_CN.UTF-8,代表中国人使用的unicode字符集

 

回到顶部

 查看默认语言

1

2

3

4

[root@localhost ~]$ cat /etc/locale.conf <-----之前的 /etc/sysconfig/i18n 已变为 /etc/locale.conf

 

  LANG=en_US.UTF-8​​​<------默认是英

 或 [root@localhost​~]$ echo $LAN

回到顶部

 查看系统已安装的语言包

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$ locale

 LANG=en_US.UTF-

 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"​​<-------装的都是英文包 ,没有安装中文

回到顶部

临时修改默认语言

1

[root@localhost​~]$ LANG="zh_CN.UTF-8"​​<----临时设置默认语言为中文,前提是安装了中文语言

 

回到顶部

永久修改语言包

  1 、安装中文语言包:

1

[root@host ~]# yum install -y kde-l10n-Chinese

 2 、安装 glibc-common(如果已经安装过,则需要重新安装):

  先检查是否已经安装 glibc-common :

1

[root@host ~]# yum list installed | grep glibc-common

或者

1

[root@host ~]# rpm -qa | grep glibc-common

如果已经安装过,则需要重新安装,这样才能利用上第一步的中文语言包:

1

[root@host ~]# yum reinstall -y glibc-common

如果没有安装过,那么安装即可:

1

[root@host ~]# yum install -y glibc-common

3 、查看系统是否支持中文语言包:

1

[root@host ~]# locale -a | grep zh

4 、修改配置文件,再重启服务器即可:

1

2

[root@host ~]# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf

[root@host ~]# reboot

 

 

回到顶部

查看文件编码及修改文件编码

1

[root@localhost​~]$ enca filename​​​​<--- 没有这个命令请安装​ sudo yum install -y enc


 需要说明一点的是,enca对某些GBK编码 的文件 识别的不是很好,识别时会出现
 Unrecognized encodin
 在Vim中查看文件编码

 :set fileencodin

 如果想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以
 ~/.vimrc 文件 中添加以下内容
 set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp93
 这样,就可以让vim自动识别文件 编码 (可以自动识别UTF-8或者GBK编码 的文件 ),其实就是依照 fileencodings提供的编码 列表尝试,如果没有找到合适的编码 ,就用latin-1(ASCII)编码 打开

 在Vim中直接进行转换文件编码 ,比如将一个文件 转换成utf-8格
 :set fileencoding=utf-

 用命令enconv 转换文件编码

1

2

enconv -L 原编码 -x 新编码 filename

例如: enconv -L zh_CN -x UTF-8 filenam


 用命令iconv 转换文件编码

1

2

iconv -f 原编码 -t 新编码 filenam

例如:iconv -f encoding -t encoding filenam


 用命令convmv 转换文件名编码:​​<-----此命令常用于解决Linux文件拷贝到Windows后文件名乱码的问
 convmv -f 原编码 -t 新编码 [选项] filenam
 常用参数
 -r 递归处理子文件 
 --notest 真正进行操作,请注意在默认情况下是不对文件 进行真实操作的,而只是试验
 --list 显示所有支持的编
 --unescap 可以做一下转义,比如把 变成空
 注意:该命令只转换文件名编码,文件内容不
 不要在NTFS和FAT文件 系统中使用此命令,否则可能产生意外结果,如果要在Linux 中正确的显示NTFS和 FAT的中文件名,可以通过mount参数来解决,具体方法查看一下man手册

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐