各位大侠:
先两套系统对接,对方发送到是中文“江门”,我这边收到编码得到的“陆颅脙脜”,请问对方使用了什么编码,我方通过什么方法能正确解码?
请附上关键代码

解决方案 »

  1.   

    只通过这两个字串还不能知道什么编码,不过你可以用几种编码试试。
    GBK、GB2312、GB18030、UTF等,还有一个高地位的什么编码,忘记了,你查一下吧。
      

  2.   

    根据得到的字节数组来判断一下吧。汉字编码一般是gbk,utf-8,gb2312。
      

  3.   

    像“陆颅脙脜”这样的编码,在网页上看到出现过,但用不同等字符编码一个个去试,都不对。
    会不会是ucs-2的编码
      

  4.   

    请看这个网页,编码就是类似的,但我怎么编码转换都看不到合适的中文
    http://www.ydbc.com.cn/08/03/70280_11.html
      

  5.   

    看来,只能GBK、GB2312、GB18030、UTF等各个试下
      

  6.   

    都不是,请查考http://www.ydbc.com.cn/08/03/70280_11.html中内容的编码,搞不懂是什么编码
      

  7.   

    两套系统?那两边用统一编码才行,建议utf-8。
      

  8.   

    答:楼主不要烦脑,编码问题我十分熟悉,像楼主的问题,我一看,就大致知道,可能问题在何处。
    这个问题根本就不是什么特殊的编码,人家用的是最普通的gb2312.
    问题可能是楼主的代码处理不当(或:对方发送时处理不当):
    见我下边的分析:错误再现代码如下:String s="江门";
    byte[] b=s.getBytes("gb2312");
    System.out.println("对方发:"+s);//你从网络上接收到的对方的字符串内容其实是如下的iso_S串
    String iso_S=new String("江门".getBytes("gb2312"),"ISO-8859-1");//错误处理:gb2312=>utf-8=>gb2312
     b=iso_S.getBytes("UTF-8");//按UTF-8处理
     System.out.println("你收到的是:"+new String(b,"GBK"));//再从UTF-8输出时转换成gb2312
     
     
     //你的正确做法:
     b=iso_S.getBytes("iso-8859-1"); //按iso-8859-1处理
     System.out.println("[正确做法]你收到的是:"+new String(b,"gb2312"));//再从iso-88590-1转换成gb2312
     
    程序运行结果:
    对方发:江门
    你收到的是:陆颅脙脜
    [正确做法]你收到的是:江门从我的上述(“江门”变成“陆颅脙脜”)代码,楼主应该知道原因了。
      

  9.   

    new BufferedStreamReader(new InputStreamReader(inputStream流,"GB2312"))如果是流的话可以这样..或 
    c ="" 收到的文本
    String s = new String(c.getbytes("iso8859-1")"GBK");GBK GB2312 或是utf8都试一下吧..应该是可以解决的 ..