作者:pcant
系统:suse linux enterprise server 10
问题:编写的程序在X window终端上运行出现乱码,在控制台上运行同样也出现乱码.
解决方法:
1.确定系统的内码是中文编码:如GBK,GB2312等.可以通过locale命令来查看,如果不是,可以修改过来.启动Yast2控制中心,打开“系统”----> “/etc/sysconfig编辑器”,依次展开“System ->Environment ->Language"项,把你面以RC打头的项的值全改成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了.