已经用了String recvStr = new String(receiveStr.getBytes("iso8859-1"),"gbk");结果是<?xml version="1.0" encoding="utf-8"?><root value =""><rtn cid ="05100000"><rcd>00</rcd><rms>?????</rms></rtn></root>中文结果显示是????, 怎么解决啊?

解决方案 »

  1.   

    乱码的解决不是这么简单的,要看整个项目的配置。参考下:http://blog.csdn.net/wula0010/article/details/3942321
      

  2.   

    我的是socket数据接收. 
    接收到的结果转换后是
    <?xml version="1.0" encoding="utf-8"?><root value =""><rtn cid ="05100000"><rcd>00</rcd><rms>?????</rms></rtn></root>
    中文还是乱码
      

  3.   

    C写的Socket 服务。
    需通过 Java写的客户端去获取数据,取得的数据中出现了以上中文乱码问题。      这个答案对吗?无法解决? java是unicode编码。一个字符是2位,十六个字节,c在本地的话,他会用本地的默认字符集,也就是gb2312或者gbk编码,这个编码是浮动的,8个或者12个,2着字符不兼容呀,解决就不知道了,我一般都是在client和server都用java的
      

  4.   

    深入分析 Java 中的中文编码问题
    一个汉字变成一个问号
    例如,字符串“淘!我喜欢!”变成了“??????”编码过程如下图所示 
    将中文和中文符号经过不支持中文的 ISO-8859-1 编码后,所有字符变成了“?”,这是因为用 ISO-8859-1 进行编解码时遇到不在码值范围内的字符时统一用 3f 表示,这也就是通常所说的“黑洞”,所有 ISO-8859-1 不认识的字符都变成了“?”。
    一个汉字变成两个问号
    例如,字符串“淘!我喜欢!”变成了“????????????”编码过程如下图所示 
    这种情况比较复杂,中文经过多次编码,但是其中有一次编码或者解码不对仍然会出现中文字符变成“?”现象,出现这种情况要仔细查看中间的编码环节,找出出现编码错误的地方。
      

  5.   

    IBM那文章说的很透彻,楼主具体问题具体分析一下就ok了
      

  6.   

    socket服务端和客户端的编码方式要一致。。不然怎么转都是乱码。。