在windows上开发的java程序文件编码默认一般是GBK,编译时不加额外的配置,也是用GBK的编码编译,这样部署在AIX系统上,如果缺少GBK字符集,内置的中文就会显示成乱码,用中文创建文件也会创建失败或是文件名变成乱码。
在AIX上使用GBK字符集还是比较简单的,首先是安装一个兼容GBK的字符集,比如GB18030或IBM-eucCN,因为AIX已经不直接提供GBK的字符集了。安装方式如下:
先通过locale –a 命令检查AIX服务器的是否存在想要的字符集,若不存在则需要将系统盘放入光驱,然后通过smitty lang命令添加相应的字符集,具体步骤如下:
l 将AIX系统盘的第一张光盘放入光驱;
运行命令:
Smitty
--> System Environments
--> Manage Languange Environment
--> Add Addinational Languange Environments
l 在随后显示的菜单中将光标分别移到以下字段,按F4进行选择(选择 .... (zh_CN)相应语言):
CULTURAL Convention to Install
LANGUAGE translation to install
l 在光驱中放入介质,回车就可以了。
字符集安装完成后,修改java程序的启动脚本,
修改启动的环境变量export LANG=Zh_CN.GB18030或是export LANG=zh_CN.IBM-eucCN
修改java程序的启动参数-Dfile.encoding=GBK
这样启动java程序后就可以正常显示中文了,
另外IBM-eucCN虽然兼容GBK,但是支持的汉字比较少,有些生僻字无法正常显示。