把收到的汉字字符以byte形式显示几个看看.

解决方案 »

  1.   

    谢谢楼上的,我这边用SocketChannel读取的时候没有经过任何转码,直接读入byte数组,写入数据库的时候再将其转化为字符,我都是在这个地方做的编码转换,您能说说可能是什么原因吗?另外,我如何要读AMERICAN_AMERICA.zhs16CGB231280编码的字符应该如何转化?
      

  2.   

    2种可能吧, 编码问题或者网络传输问题.
    把你的byte数组贴出来看看.(贴几个本应该是汉字的就行,如buf[0]---buf[15])
      

  3.   

    byte [] bb = {-62, -19, -72, -33, -75, -37};
        String name = new String(bb);
        System.out.println(name);       //马高帝
    Server送过来时对的, 那应该是写sybase时的问题.不过你上面说"在Java程序中写入中文数据时完全正确", 那就比较奇怪了.
      

  4.   

    谢谢楼上的,问题解决了,是我自己处理的问题,我从Socket读出的数据是放到一个字节数组里面,但是其他的类取这个字段的数据时,是将数组转换为字符串返回的,这样是用了LINUX的默认编码转换,所以不管我后面对取出来的字符串怎么转换,都会有问题,现在我改成在返回字符串的时候就有GBK编码就好了。
    谢谢楼上的提示让我找到了真正问题的所在,前面搞了大半天的无用功,呵呵