在Java端有如下字串,把字串转成byte数组,然后转成int
String str="<p> 7.    社会大众</p>";
byte[] testBytes = str.getBytes();
for(int i=0;i<testBytes.length;i++){
  output+=testBytes[i]+":";
}输出
60:112:62:32:55:-17:-68:-114:9:-25:-92:-66:-28:-68:-102:-27:-92:-89:-28:-68:-105:60:47:112:62:
在javascript端读取这个String,然后split成int数组,转成字串。
英文没问题,但是中文会乱码。如何解决?

解决方案 »

  1.   

    byte[] testBytes = str.getBytes("GB2312"); 试试 
      

  2.   

    byte[] testBytes = str.getBytes(); 
    这个的编码跟你js所在的页面的编码一致,把页面的pageEncoding 设置成utf-8
      

  3.   


    String str=" <p>7. 社会大众</p>"; 
    String output = "";
    int length = str.length();
    for (int i=0; i<length; i++) { 
    output += (int)str.charAt(i) + ":"; 
    }
    // "32:60:112:62:55:46:32:31038:20250:22823:20247:60:47:112:62:".equals(output) == truevar str = "32:60:112:62:55:46:32:31038:20250:22823:20247:60:47:112:62:";alert(String.fromCharCode.apply(null, str.split(/\:/)));