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这个变量就可以缺省代替所有其它变量了。

二、修改字符集的方式

如果默认语言是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的时候会读取其中的设定值的

Linux字符集的问题

时间: 2024-11-09 07:27:17

Linux字符集的问题的相关文章

linux字符集查看与设置

linux字符集查看与设置 命令:locale -a   查看本地的字符集 locale -m 查看所有支持的字符集 查看当前默认设置   echo $LANG 记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下:www.2cto.com 代码: LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" SUPPORTED="zh_CN.UTF-8:zh_C

linux 字符集及FTP传输乱码处理

最近FTP传输文件到Linux服务器时,出现乱码的情况,传输的文件名中带有汉字.于是将系统语言设置为支持汉语 首先安装相关的包 yum -y groupinstall chinese-support 编辑文件/etc/sysconfig/i18n vi /etc/sysconfig/i18n LANG="zh_CN.GB18030" #LANG="zh_CN.UTF-8" LANGUAGE="zh_CN.GB18030.zh_CN.GB2312:zh_CN

Linux字符集的查看及修

一·查看字符集 字符集在系统中体现形式是一个环境变量,以CentOS6.5为例,其查看当前终端使用字符集的方式可以有以下几种方式: 第一种: [[email protected] tmp]# echo $LANG zh_CN.UTF-8 第二种: [[email protected] ~]# env |grep LANG LANG=zh_CN.UTF-8 第三种: [[email protected] ~]# export |grep LANG declare -x LANG="zh_CN.UT

Linux字符集的查看及修改

一·查看字符集 字符集在系统中体现形式是一个环境变量,以CentOS6.5为例,其查看当前终端使用字符集的方式可以有以下几种方式: 第一种: 1 2 [[email protected]-www tmp]# echo $LANG zh_CN.UTF-8 第二种: 1 2 [[email protected]-www ~]# env |grep LANG LANG=zh_CN.UTF-8 第三种: 1 2 [[email protected]-www ~]# export |grep LANG d

Linux 字符集的查看及修改

一·查看字符集 字符集在系统中体现形式是一个环境变量,以CentOS6.5为例,其查看当前终端使用字符集的方式可以有以下几种方式: 第一种: [[email protected] tmp]# echo $LANG zh_CN.UTF-8 第二种: [[email protected] ~]# env |grep LANG LANG=zh_CN.UTF-8 第三种: [[email protected] ~]# export |grep LANG declare -x LANG="zh_CN.UT

linux字符集介绍及解决中文乱码实战

字符集对应配置文件:/etc/sysconfig/i18n 先备份再修改: 备份:cp /etc/sysconfig/i18n /etc/sysconfig/i18n.oldboy.20150521 修改:sed -i ‘s#LANG=”en_US.UTF-8”#LANG=zh_CN.UTF-8#g’/etc/sysconfig/i18n 生效:. /etc/sysconfig/i18n 或 source /etc/sysconfig/i18n 再改选项

linux 字符集更改

Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,在Linux下显示为乱码.为了解决此问题,修改Linux的默认编码为GBK.方法如下: 方法1: vi   /etc/sysconfig/i18n 默认为: LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16" 修改为: LANG="zh_CN.GBK"SUPPORTED="zh_CN.UTF-8:zh

linux字符集

vi /etc/sysconfig/il8n LANG="zh_CN.GBl8030" 3.  source /etc/sysconfig/il8n 服务器时间同步: ntp服务时间同步 加大服务器文件描述符: 查看描述符 [[email protected] ~]# ulimit -n 1024 方法一: [[email protected] ~]# ulimit -HSn 65535 重启后失效 方法二: echo '*              -      nofile    

【Linux】修改ubuntu默认字符集

今天把以前的项目移植到linux上了,我装的是ubuntu,web服务器是tomcat,发现用freemark模板生成的静态页面全 乱码了,在windows都是正常的,猜想可能是linux字符集的问题,用locale查看ubuntu默认字符集为en_US.UTF-8,需 要修改为zh_CN.GB2312. 首先vi /var/lib/locales/supported.d/local 将zh_CN.GB2312加入到后面,保存 执行:locale-gen 然后:vi /etc/profile