Windows下正常,AIX下出现中文乱码!!!
AIX上装的是Tomcat,通过bean和windows上的程序(C语言写的)进行通信,
通过该Bean通过将参数打包成字节数组的形式给c程序发送新增,修改,删除用户的命令
如果将Tomcat装在windows上则正常,如果装在AIX小型机上就会出现中文用户名乱码的情况。
请问可能会是什么情况?跟字节序有关系吗?还是AIX小型机不支持中文?
问题点数:40、回复次数:5Top
1 楼wizardblue()回复于 2006-03-03 14:46:40 得分 5
中文肯定支持的啦,编码看一下,我们这边aix好像用的都是应用服务器Top
2 楼zjl990710(snake)回复于 2006-03-03 14:57:26 得分 30
字符集问题~~首先确定aix默认的字符集是什么,由于通过String对象getBytes()方法获得的字符数组获得的是系统默认字符集的byte数组,如果默认的不是gbk(windows默认的字符集),那么传到windows系统的时候就会产生乱码现象,下面是把srcCharset字符集的String对象转换为gbk字符集数组的一个方法:
private final String CONTENT_CHARSET = "GBK";
private byte[] StringToByteGBK(String content, String srcCharset) {
byte[] reval = null;
if (content == null || content.length() == 0) {
return null;
}
try {
String cn = null;
reval = content.getBytes(srcCharset); // 得到 字节流
cn = new String(reval, srcCharset);
cn = new String(cn.getBytes(CONTENT_CHARSET),
CONTENT_CHARSET); // 转换为gbk
if (cn == null) {
return reval;
}
reval = cn.getBytes(SMS_CONTENT_CHARSET); // 重新得到一次gbk字节流
} catch (Exception e) {
System.out.println(e.getMessage());
}
return reval;
}Top
3 楼zhblue(http://www.newsclan.com)回复于 2006-03-03 15:18:54 得分 5
采用手工启动应用服务器,启动前执行
export LC_ALL=zh_cn.gbk
export LANG=zh_cn.gbk
export LANGUGAE=zh_cn.gbk
Top
4 楼ericbu(~~~~~~~~~~~~~~~)回复于 2006-03-03 15:23:59 得分 0
谢谢 zjl990710(snake) 和wizardblue(不死鱼)
zjl990710(snake)的方法我会尝试,很有可能就是这样的问题了,可惜现在没有小型机,要等周二才能测试。
如果测试通过我会立即放分的。Top
5 楼ericbu(~~~~~~~~~~~~~~~)回复于 2006-03-03 15:24:32 得分 0
谢谢 zhblue(歪嘴鱼)Top




