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字符集

查看默认语言

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

  LANG=en_US.UTF-8​​​<------默认是英
或 [root@localhost​~]$ echo $LAN

查看系统已安装的语言包

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

临时修改默认语言

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

永久修改语言包

1 、安装中文语言包:

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

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

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

[root@host ~]# yum list installed | grep glibc-common
或者
[root@host ~]# rpm -qa | grep glibc-common

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

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

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

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

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

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

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

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

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

 [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 转换文件编码

 enconv -L 原编码 -x 新编码 filename
例如: enconv -L zh_CN -x UTF-8 filenam

用命令iconv 转换文件编码

 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手册

参考:https://ccie.lol/knowledge-base/linux-centos-7-install-chinese

https://www.iteye.com/blog/825635381-2087814

https://zhuanlan.zhihu.com/p/58655288

CentOS 7中的系统语言包及UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别的更多相关文章

  1. CentOS 6.5语言包裁剪

    https://www.ibm.com/developerworks/cn/linux/l-cn-linuxglb/ 浅析 Linux 的国际化与本地化机制 Linux 是一个国际化的操作系统,它的工 ...

  2. linux安装中文语言包

    相关配置如下: yum install fonts-chinese.noarch yum install m17n-db-common-cjk yum install m17n-db-chinese安 ...

  3. win7 安装英文语言包

    因为某些英文程序字符显示不全,所以考虑把 win7 改为英文语言.直接下载英文语言包安装不成功,经过多次尝试和百度终于找到合适的办法. 下载 Vistalizator.exe, windows6.1- ...

  4. moodle3.7中文语言包

    Moodle官方有中文语言包,但是还有没有翻译的,为了提高用户体验,可以将部分未翻译的应用在Moodle网站管理中自己修改. 具体步骤: 先确定需要修改的关键字,也就是网站中没有翻译成中文的文字 在c ...

  5. Eclipse添加中文语言包与下载

    从Eclipse官网下载最新版本的Eclipse都是英文版的,不自带语言包.现在Eclipse有一个语言包项目,叫Eclipse Babel Project.如果需要语言包,可以联机从这儿下载. Ba ...

  6. 自己在安装centos 系统时, 是使用英文安装 成功,现在系统语言为英语,如何设置为中文?

    作为一个linux菜鸟,遇到的问题可谓真多,在虚拟机VMware上安装好centos系统后,心里甚喜,也连上网络了. 一.遇到的问题 but,火狐浏览器浏览网页出现乱码,也不知道怎么解决?所有的中文都 ...

  7. 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]

    前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...

  8. CentOS 修改系统语言的方法

    使用如下命令: export LANG="en_US.UTF-8" 可以修改环境变量LANG,修改之后立即生效,当时当系统重新启动时便会又变成原来的语言 另外两种修改语言的方法: ...

  9. Fedora 手动删除系统中不再需要的包

    最新文章:Virson‘s Blog 1.安装yum-utils yum install yum-utils 2.使用package-cleanup --leaves列举系统中不再需要的包 packa ...

随机推荐

  1. Cython编译动态库、引用C/C++文件

    将某些.py 编译成动态库 设置好要编译的module们: compile_to_c_modules = [ 'package.module' ] 将它们转换成cythonize可识别的参数: def ...

  2. JSON.parse 和 JSON.stringify 详解

    JSON格式,(简写JavaScript Object Notation),是一种用于数据交换的文本格式,书写简单. 基于JavaScript原生语法,能够序列化对象.数组.数值.字符串.布尔值和 n ...

  3. [opencv]利用minAreaRect计算平面矩形的旋转角度

    #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include ...

  4. web服务之nginx部署

    本期内容概要 了解web服务 Nginx和Apache的对比 部署Nginx 内容详细 1.什么是web服务 Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用 ...

  5. kubernetes运行应用1之Deployment

    run 或create deployment 部署一个应用 kubernetes 部署 nginx ,使用 kubectl get deployment 时出现 No resources found ...

  6. openmesh - src - trimesh delete and add elements

    openmesh - src - trimesh delete and add elements openmesh 版本 8.1 About 本文主要介绍openmesh的如下接口 add_verte ...

  7. Swoole 进程管理模块 Process 之单进程的使用

    PHP 自带的 pcntl,存在很多不足,如: 没有提供进程间通信的功能: 不支持重定向标准输入和输出: 只提供了 fork 这样原始的接口,容易使用错误: Swoole\Process 提供了如下特 ...

  8. LCA/在线(倍增)离线(Tarjan)

    概念 祖先 公共祖先 最近公共祖先 方法1:暴力爬山法 方法2:倍增 求公共祖先 求俩点的距离 Tarjan 概念 祖先 有根树中,一个节点到根的路径上的所有节点被视为这个点的祖先,包括根和它本身 公 ...

  9. pymysql防止SQL注入的方法

    import pymysql class Db(object): def __init__(self): self.conn = pymysql.connect(host="192.168. ...

  10. cnetos7安装字体

    1 先下载字体 链接:https://pan.baidu.com/s/1FEV7K8c8S6o3gBukkSGp4w 提取码:font 2 安装字体脚本 vi font.sh #!/bin/bash ...