在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数组,转成字串。
英文没问题,但是中文会乱码。如何解决?
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数组,转成字串。
英文没问题,但是中文会乱码。如何解决?
这个的编码跟你js所在的页面的编码一致,把页面的pageEncoding 设置成utf-8
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(/\:/)));