linux中文乱码问题及locale详解
一、修改系统默认语言及中文乱码问题
记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下: LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" SUPPORTED="zh_CN.UTF-8:zh_CN:zh" LINUXTYPE=targeted
LANG变量是language的简称,决定系统的默认语言的,即系统的菜单、程序的工具栏语言、输入法默认语言等。SYSFONT是system font的简称,决定系统默认用哪一种字体。SUPPORTED变量决
定系统支持的语言,即系统能够显示的语言。需要说明的是,由于计算机起源于英语国家,因此,不管你把这些变量设置成什么,英语总是默认支持的,而且不管用什么字体,英文字体总包含在其中。
临时调整终端乱码现象:# LANG="en_US.UTF-8" 即把系统的语言临时设置成英文,或者更简单一点,可以直接这样: # LANG="" 或export LANG=""
LANG变量被清空后,系统就默认用英语。这样设置后,在字符模式下输出的出错信息等就是全英文的了。但这种设置是临时的,只是临时改变了LANG这个bash变量而已。当退出重新登录或者切换到其他字符终端后就无效了。只要把i18n文件中的LANG变量设置成英文的”en_US.UTF-8”,就可以永久解决这个问题了。命令:vi etc/sysconfig/i18n
修改后的文件如下: #LANG="zh_CN.UTF-8" LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
请不要把LANG变量简单的清空,因为这个变量不仅在字符模式下用到,在图形界面下也用到,简单清空在字符模式下确实不会有问题,但在图形界面下,却会造成中文无法正常显示的情况,在过去Redhat系列的版本中i18n文件中还有一个叫LANGUAGE的变量,专门控制图形界面下的语言设置,现在的FC系列中已经把这两个变量整合成一个变量了。
二、locale
程序运行使用一套语言需要有字符集(数据)和字体(显示),Locale是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。
locale常用操作
1、查看现有语言环境:
locale
2、可用语言环境:
locale -a
3、临时修改语言环境:
AIX:
export LANG=en_US
export LANG=zh_CN
Linux:
export LANG=en_US.UTF-8
export LANG=zh_CN.UTF-8
4、永久修改系统级字符集:
修改/etc/sysconfig/i18n
英文版系统:
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
中文版系统:
LANG="zh_CN.UTF-8"或者LANG="zh_CN.gbk"
SYSFONT="latarcyrheb-sun16"
vi /.bash_profile
三、安装中文字符集
1、安装所有与中文支持相关的包
# yum -y groupinstall chinese-support
2、修改字符编码配置文件
# vi /etc/sysconfig/i18n
修改后内容如下:
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"
locale详解
在 Linux 中通过 locale 来设置程序运行的不同语言环境,locale 由 ANSI C 提供支持。locale 的命名规则为:
<语言>_<地区>.<字符集编码>
如:
zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。
在locale环境中,有一组变量,代表国际化环境中的不同设置:
1、LC_COLLATE
定义该环境的排序和比较规则
2、LC_CTYPE
用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
3、LC_MONETARY
货币格式
4、LC_NUMERIC
非货币的数字显示格式
5、LC_TIME
时间和日期格式
6、LC_MESSAGES
提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。LANGUAGE参数可同时设置多种语言信息,如
LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。
7、LANG
LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL。
8、LC_ALL
它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响。
一个例子:
设置前,使用默认locale:
# locale
LANG="POSIX"
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
设置后,使用zh_CN.GBK中文locale:
# export LC_ALL=zh_CN.GBK
# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=zh_CN.GBK
"C"是系统默认的locale,"POSIX"是"C"的别名。所以当我们新安装完一个系统时,默认的locale就是C或POSIX。
LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" SUPPORTED="zh_CN.UTF-8:zh_CN:zh" LINUXTYPE=targeted
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
linux中文乱码问题及locale详解相关推荐
- js php 中文乱码怎么解决_探讨PHP JSON中文乱码的解决方法详解
我们知道在使用Ajax技术与PHP后台交互时,中文乱码是常有的事,JSON作为与XML类似的数据交换格式,在PHP用来进行交互时也会出现中 文乱码的情况,解决PHP JSON中文乱码的方法思路其实与P ...
- linux mount命令参数及用法详解
linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...
- linux中whoami命令的作用是,linux whoami命令参数及用法详解(linux查看登陆用户名)
linux whoami命令参数及用法详解(linux查看登陆用户名) 2019年05月31日 | 萬仟网科技 | 我要评论 whoami 命令显示登录名.与使用命令 who 并指定 am i 不同, ...
- linux 进程间通信 dbus-glib【实例】详解三 数据类型和dteeth(类型签名type域)(层级结构:服务Service --> Node(对象、object) 等 )(附代码)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- Linux下fdisk命令操作磁盘详解--添加、删除、转换分区
linux下fdisk命令操作磁盘详解--添加.删除.转换分区等 fdisk 操作硬盘的命令格式如下: [root@localhost beinan]# fdisk 设备 比如我们通过 fdisk - ...
- linux 的文件软链接隐藏,Linux inode及硬链接软链接详解
Linux inode及硬链接软链接详解 York • 2020 年 09 月 28 日 Loading... 操作系统的文件数据除了实际内容之外,通常含有非常多的属性,例如 `Linux`操作系统的 ...
- linux中fdisk的参数,Linux fdisk命令参数及用法详解--Linux磁盘分区管理命令fdisk
fdisk 命令 linux磁盘分区管理 用途:观察硬盘之实体使用情形与分割硬盘用. 使用方法: 一.在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形. 二.在 ...
- linux php 中文乱码解决,Linux中文乱码如何解决
刚开始使用Linux系统的时候,大家都会遇到一个问题,那就是终端输入命令回显的时候中文显示乱码.为什么会出现这样的问题呢?出现这样的问题,我们应该怎么去解决它好呢?有何解决方法?今天,小编就和大家说一 ...
- Linux中文乱码-word-pdf字体转换问题处理
Linux中文乱码-word-pdf字体转换问题处理 Linux下安装黑体和宋体 问题原因:Linux缺少中文字体库 黑体(simhei.ttf) 宋体(simsun.ttc) 1.在windows目 ...
最新文章
- 自动创建阿里云抢占式实例
- 证明矩阵添加一列(行),则其秩或不变,或增加1
- MySQL 笔记3 -- SQL 语言
- Kafka消息投递语义-消息不丢失,不重复,不丢不重
- 重写AgileEAS.NET SOA 中间件平台账号密码的加密算法
- 第三次学JAVA再学不好就吃翔(part42)--内部类概述
- php文本文件操作,文本文件操作的php类
- Akka-Cluster(0)- 分布式应用开发的一些想法
- 服务器lsass系统错误,急急急开机出现lsass.exe系统错误系统资源不够无法完成AP? 爱问知识人...
- python程序设计课程设计二级减速器_二级减速器的课程设计
- python将PDF文件转化为图片
- 灰度测试或 AB 测试
- 星界边境联机服务器未响应,星界边境Starbound联机注意事项
- 关于汉字的部件部首和独体字
- 局域网怎么添加新的计算机用户,如何添加局域网
- 极大值,极小值算法以及α-β剪枝技术
- 2020.12.10丨cufflinks 简介及使用说明
- SCSI子系统基础学习笔记 (之UFS子系统) - 1.2 概述(软件部分)
- 电路中滤波电容和退耦电容_关于滤波电容、去耦电容、旁路电容作用及其原理...
- 密码学系列 - 国密算法