AIX上装的是Tomcat,通过bean和windows上的程序(C语言写的)进行通信,通过该Bean通过将参数打包成字节数组的形式给c程序发送新增,修改,删除用户的命令
如果将Tomcat装在windows上则正常,如果装在AIX小型机上就会出现中文用户名乱码的情况。
请问可能会是什么情况?跟字节序有关系吗?还是AIX小型机不支持中文?

解决方案 »

  1.   

    中文肯定支持的啦,编码看一下,我们这边aix好像用的都是应用服务器
      

  2.   

    字符集问题~~首先确定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;
    }
      

  3.   

    采用手工启动应用服务器,启动前执行export LC_ALL=zh_cn.gbk
    export LANG=zh_cn.gbk
    export LANGUGAE=zh_cn.gbk
      

  4.   

    谢谢 zjl990710(snake) 和wizardblue(不死鱼) zjl990710(snake)的方法我会尝试,很有可能就是这样的问题了,可惜现在没有小型机,要等周二才能测试。
    如果测试通过我会立即放分的。