编写的程序在X window终端上运行出现乱码,在控制台上运行同样也出现乱码.

解决方法:

1.确定系统的内码是中文编码:如GBK,GB2312等.可以通过locale命令来查看,如果不是,可以修改过来.启动Yast2控制中心,打开“系统”——> “/etc/sysconfig编辑器”,依次展开“System ->Environment ->Language"项,把你面以RC打头的项的值全改成zh_CN.GB2312.(也可以直接修改/etc/sysconfig/language文件).

 

2.装上zhcon中文外挂.

zhcon是工作在Linux控制台下的高效双字节中/日/韩(CJK)虚拟终端,就像DOS环境中的UCDOS一样,为控制台(console)环境提供完整的双字节语言环境。下载使用前请注意: zhcon不适用于X Window的终端,在X Window中可以选择cxterm或rxvt作为中文终端。 zhcon是外挂式平台,与内核汉化不同,不需要对linux的kernel打补丁。如同普通的linux软件,可以方便地直接安装zhcon,在主控制台上执行zhcon后,就可以进入中文平台,也可以随时退出返回到西文状态。 zhcon是遵循GPL原则的自由软件,因为任何人都没有理由为使用自己的母语而付费。

官方网站:http://zhcon.sourceforge.net/index_cn.html,那里有源码包也有二进制的rpm包.

装完zhcon后,先运行它,zhcon,它会出现一些提示信息,它模拟了一个shell.然后再运行自己的程序,中文就显示正常了.

3.X window下的终端

菜单项上有个"终端"选项,选择"编码方式"为GB2312或GBK就行OK了. 

方法一:

解决Suse图形终端中文乱码问题,学习我用的是Suse linux enterpise server 10,用xwindows时打开一个终端运行自己编写的程序,程序界面有中文,可以显示出来就是乱码,但在串口终端就能显示中文。

解决方法:
“计算机”-->“YaST2控制中心”-->"系统"-->"/etc/sysconfig编辑器"-->"system"-->"Environment"-->Language",将"RC_LANG"设置为"zh_CN.GB2312".重启系统即可。

这个方法设置了xwindows模式下的终端能解决乱码问题,可是在字符界面模式却不行,正在想办法。

方法二:

首先,确定你的系统内码是中文编码,如GB2312,GBK。如果不清楚,请在终端下输入locale查看,不是就修改。这里,我提供在Suse 下的修改方法:启动Yast2控制中心,打开“系统”——> “/etc/sysconfig编辑器”,展开“System Environment Language"项,把你面以RC打头的项的值全改成GB2312并重启系统生效。