一、需求
英文->英文,中文编码->中文,标点符号编码->标点符号
二、Java代码实现
//unicode解码
public static String unicodeToString(String unicodeStr){
StringBuilder sb = new StringBuilder();
int i = -1;
int pos = 0;
//在pos及之后搜索\\u
while((i = unicodeStr.indexOf("\\u", pos)) != -1) {
sb.append(unicodeStr.substring(pos, i));
if((i+5) < unicodeStr.length()){
String unicode = unicodeStr.substring(i + 2, i + 6);
sb.append((char) Integer.parseInt(unicode, 16));
pos = i + 6;
} else {
sb.append(unicodeStr.substring(i, unicodeStr.length()));
return sb + "";
}
}
return sb + "" + unicodeStr.substring(pos, unicodeStr.length());
}
三、测试:
public static void main(String[] args) {
String json = "{\"rsp_body\":\"\\\"msg\\\":\\\"\\u64cd\\u4f5c\\u6210\\u529f\\\",\\\"code\\\":0,\\\"data\\\":{}}\",\"status_code\":\"200\"}";
System.out.println(unicodeToString(json));
}
结果: