做一个通讯程序,传过来的报文接收后符号和汉字都是utf-8编码的,英文则是原样,比如<?xml version="1.0" encoding = "GB2312"?>变成了%3C%3Fxml+version%3D%221.0%22+encoding+%3D+%22GB2312%22%3F%3E,这种问题求教如何处理?谢谢

解决方案 »

  1.   

    补充一句,用什么new String(s.getByte(),"utf-8")什么的都没用
      

  2.   


    import java.net.URLDecoder;public class Test { public static void main(String[] args) throws Exception {
    String str = "%3C%3Fxml+version%3D%221.0%22+encoding+%3D+%22GB2312%22%3F%3E";
    System.out.println(URLDecoder.decode(str, "GBK"));
    }
    }字符串被编码了
      

  3.   

    new String(s.getByte(),Charaset);后面这个参数一定要和消息传输的信息编码相对应,楼主是用IBM MQ来接收消息?
      

  4.   

    这样呢new String(s.getByte("ISO-8859-1"),"utf-8")
      

  5.   

    赞成2楼,中文操作系统都是默认GBK