一、解决linux中文乱码问题
通过xmanager远程访问linux(我这里使用RedHat as5),原先本机可以看到的中文出现乱码(ssh终端访问时也是乱码)。如何解决这一问题?
其实,很简单只要设置系统字符集就行。具体如下:
1、修改/etc/sysconfig/i18n文件(注意做好备份,最好不要删除原系统内容,可以用#注释掉)
2、原文件内容如下:
#LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN.UTF-8:zh_CN.GB18030:zh_CN"
SUPPORTED="zh_CN.UTF-8:zh_CN.GB18030:zh-CN:zh:en_US.UTF-8:en_US:en"
SYSFONT=*lat0-sun16
3、修改后内容如下:
#LANG="zh_CN.UTF-8"
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.UTF-8:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN.UTF-8:zh-CN:zh:en_US.UTF-8:en_US:en"
SYSFONT=*lat0-sun16
4、重新启动系统
简单解释一下,LANG变量是language的简称,决定系统的默认语言的,即系统的菜单、程序的工具栏语言、输入法默认语言等;SYSFONT是system font的简称,决定系统默认用哪一种字体;SUPPORTED变量决定系统支持的语言,即系统能够显示的语言。
二、可能引起的问题
如果修改后,个别已经安装的软件可能后出现一些莫名奇妙的问题,如:java开发的一些应用程序中原先配置文件中有中文使用utf-8编码,但是现在系统字符集变成了gb18030,再次运行java程序时jvm会使用现有系统字符集将导致程序出错。
最简单的解决方法就是,在运行前临时改变当前字符集。具体操作如下:
1、同一终端模式下: LANG="en_US.UTF-8" (根据具体字符集决定)
2、同一终端模式下: 可运行的程序或脚本