您的位置:首页 > 运维架构 > Linux

CentOS 中文支持相关问题

2016-04-12 14:14 344 查看
iconv -l 命令查看系统支持的编码格式

localectl list-locales 命令查看可用的区域语言(支持正则表达式)


localectl
status命令查看当前区域语言配置(支持正则表达式)


localectl
set-locale LANG=zh_CN.utf8 命令设置区域语言配置


/etc/locale.conf文件配置系统默认使用的编码格式

三个设置解决Putty登陆Linux同时支持GBK与UTF-8编码乱码的问题

                             
UTF8的环境设置为

                              putty的设置:

                              1.Windows->Appearance->font 

                              setting->Fixedsys(这个字体好看,选其它中文字体也可以)

                              2.Windows->translation->font->UTF-8,

                              登陆上去linux后系统的设置:(如果你系统默认的环境是UTF-8,则无须这一步)

                              3.export LC_ALL=zh_CN.UTF-8

                              GBK(GBK编码包含了GB2312里的字)

                              putty的设置:

                              1.Windows->Appearance->font 

                              setting->Fixedsys(这个字体好看,选其它中文字体也可以)

                              2.Windows->translation->font->Use font 

                              encoding(或手动输入CP936也可).

                              登陆上去linux后系统的设置:

                              3.export LC_ALL=zh_CN.GBK

                              不想设置的可以用另一个终端pietty, 

                              这个是putty基础上开发的,可以直接在菜单里远中文支持,更傻瓜化。

                              推荐一个多标签的putty管理程序,wintabber,开多个putty时很方便。 

文件传输后乱码问题解决

从windows传过来的文件拷到linux下是乱码,可能又想在linux下显示中文,怎么办呢?

我们首先进行测试,linux下的中文是否可以正常显示?答:yes. 所以问题就比较明显了,windows下拷过来的不能显示,说明windows下和linux下支持的格式是不相同的.

linux下一般是采用utf-8的编码,而我们在windows上编辑文件时是gb2312的编码。所以导致中文编码会乱码。要更正这个问题实际上很简单只要把文件转换成utf-8编码格式然后再导入就ok啦。

然后使用如下命令进行转换:

iconv -f gb2312 -t utf-8 test.txt> testutf8.tzt

(-f 就是源编码,-t 转换目标编码,test.txt源文件,testutf8.txt生成目标编码文件)

备注:使用 iconv -l 可以查看系统支持编码格式。当然也可以添加其中的编码格式:

默认为utf8,如果想用其他编码如GBK

手动更改配置文件的命令:

shell> vi /etc/sysconfig/i18n

将LANG="zh_CN.UTF-8"修改为:

LANG="zh_CN.GBK"

保存并关闭,运行下面的命令使配置生效:

shell> source /etc/sysconfig/i18n

将终端字符编码显示为简体中文:

shell> vi /etc/profile.d/chinese.sh

添加下面这行:export LC_ALL=zh_CN.GBK

shell> source /etc/profile.d/Chinese.sh

数据库读出来的文字乱码问题解决

就是从数据库中取出来时,在存入linux的文件里时,在字符流时制定编码格式。代码如下:

FileOutputStream fos=new FileOutputStream(new File(filePath),true);

Writer ut=new OutputStreamWriter(fos,"UTF-8");

out.write(s);

out.write("\n");

out.flush();

fos.close();

out.close();

解决:

vi .bash_pro

file

export lang=zh_CN

vi /etc/sysconfig/i18n

LANG="en_US.UTF-8"

SUPPORTED="en_US.UTF-8:en_US:en:zh_CN.GB18030:zh_CN:zh:zh_TW.big5:zh_TW:zh:ja_JP.UTF-8:ja_JP:ja:ko_KR.eucKR:ko_KR:ko"

SYSFONT="latarcyrheb-sun16"

只改第一个不管用,好像第二个尤其重要,必须改。

编辑文件乱码解决

新发了台linux虚拟机,用VIM出现了中文乱码问题,查找了资料,解决方法如下:

vi /etc/sysconfig/i18n

将内容改为

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″

这样中文在SSH,telnet终端就可以正常显示了

其中,主要修改的内容主要为zh_CN.GB18030,其中要注意VI个性的内容为根目录下,要注意权限

 
SSH连接乱码问题解决

每次装完linux,用SSH连接,中文总是显示乱码。51Testing软件测试网

解决方法:编辑/etc/sysconfig/i18n,将其中的 LANG=”zh_CN.UTF-8″ 改为 LANG=”zh_CN.GB2312″ 。

&m^%k7X6X7IQ051Testing软件测试网 K!W|,r8cV&r5N

断开重新连接。

用SSH软件连接时,中文是乱码解
4000
决:修改/etc/sysconfig/i18n文件,将其改成以下内容: LANG=”zh_CN.GB18030″ LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”SUPPORTED=”zh_CN.UTF- 8:zh_CN:zh:en_US.UTF-8:en_US:en”SYSFONT=”latarcyrheb-sun16″#source /etc/sysconfig/i18n重启机器,问题应该解决了。CentOS更改LANG=”zh_CN.GB18030″
SUPPORTED=”zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en”SYSFONT=”lat0- sun16″

 
Linux下中文乱码问题解决方案

从 windows传过来的文件拷到linux下是乱码,俺们又想在linux下显示中文,怎么办呢?我们首先进行测试,linux下的中文是否可以正常显示?答:yes. 所以问题就比较明显了,windows下拷过来的不能显示,说明windows下和linux下支持的格式是不相同的.

linux下一般是采用utf-8的编码,而我们在windows上编辑文件时是gb2312的编码。所以导致中文编码会乱码。要更正这个问题实际上很简单只要把文件转换成utf-8编码格式然后再导入就ok啦。

然后使用如下命令进行转换:

iconv -f gb2312 -t utf-8 test.txt> testutf8.tzt

(-f 就是源编码,-t 转换目标编码,test.txt源文件,testutf8.txt生成目标编码文件)

备注:使用 iconv -l 可以查看系统支持编码格式。当然也可以添加其中的编码格式:

默认为utf8,如果想用其他编码如GBK

手动更改配置文件的命令:

shell> vi /etc/sysconfig/i18n

将LANG=”zh_CN.UTF-8″修改为:

LANG=”zh_CN.GBK”

保存并关闭,运行下面的命令使配置生效:

shell> source /etc/sysconfig/i18n

将终端字符编码显示为简体中文:

shell> vi /etc/profile.d/chinese.sh

添加下面这行:export LC_ALL=zh_CN.GBK

shell> source /etc/profile.d/Chinese.sh

 
解决Linux操作系统下Java的中文乱码问题

在jdk15以后,只需在~/jre/lib/fonts/下建一个fallback目录,把你想在java中使用的字体烤贝到这个目录中即可

以下方法在fc6下测试通过,假设用户的jre路径为 /usr/java/jdk1.6.0_03/jre/

cd /usr/java/jdk1.6.0_03/jre/lib/fonts

sudo mkdir fallback

将C:\WINDOWS\Fonts\simsun.ttc拷贝到 /usr/java/jdk1.6.0_03/jre/lib/fonts/fallback文件夹内 centos5.2配置完成后,正常能显示中文,查看后发现支持utf-8字符集。

而putty和ssh secure shell连接却发现乱码,主要表现为执行vim乱码,su命令乱码。

使用$locale命令查看,出现如下:

LANG=zh_CN.UTF-8

LANGUAGE=zh_CN:zh

LC_CTYPE=”zh_CN.UTF-8″

LC_NUMERIC=”zh_CN.UTF-8″

LC_TIME=”zh_CN.UTF-8″

LC_COLLATE=”zh_CN.UTF-8″

LC_MONETARY=”zh_CN.UTF-8″

LC_MESSAGES=”zh_CN.UTF-8″

LC_PAPER=”zh_CN.UTF-8″

LC_NAME=”zh_CN.UTF-8″

LC_ADDRESS=”zh_CN.UTF-8″

LC_TELEPHONE=”zh_CN.UTF-8″

LC_MEASUREMENT=”zh_CN.UTF-8″

LC_IDENTIFICATION=”zh_CN.UTF-8″

LC_ALL=

解决方案:

1. 对于putty0.6版本

a.修改centos上/ect/sysconfig/i18n内容为:

LANG=”zh_CN.UTF-8″

b.修改putty的configuration窗口内windows->Appearance->font setting为新宋体,10号字。

修改Translation的Receive data assumed to be in which character set为:

UTF-8。(因为下来列表中没有中文字符集,GB2312或cp936)。

这样修改完成后,putty就正常支持中文显示了。

2.对于ssh secure shell版本。

a.将配置的字体改成宋体,但是还是乱码,

b.修改centos的/ect/sysconfig/i18n内容为:

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=”latarcyrheb-sun16″

—以上内容是网上找到了,照着写了。

发现连接ssh secure shell可以正常显示中文。

用$locale查看,上面看到的配置都变成了GB18030编码了

** 但是又用putty连接,却又变成了乱码,我理解因为putty仍然用的是utf8编码,

而配置ssh secure shell时,将centos改成gb18030编码了,所以乱码。

c.到服务器上,重新启动了centos,发现显示中文也正常。

3. 如果发现ssh secure shell有问题,或相关的引起问题,则重新配置putty使用,

配置方案可以参考上述配置。

结论:

因为ssh secure shell窗口符合window显示,所以暂时定为使用ssh secure shell客户端。

而其也绑定了ftp上传功能,相对方便。

变化:考虑建立mysql等多处使用utf-8编码,所有仍然使用putty客户端,系统编码改成utf-8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: