unicode转成String

问题:有时我们用utf-8去接收,结果接收到的是unicode码,这时就需要将unicode转成string
列如:

<MSG> <RES> <RES.1>2020-07-12 10:34:31</RES.1> <RES.2>0</RES.2> <ERR Code="00000.01">u672Au67E5u8BE2u5230u6302u53F7u4FE1u606Fu6216u6302u53F7u4FE1u606Fu5DF1u8D85u8FC7u6709u6548u671F!</ERR> </RES> </MSG>

解决:编写一个方法将unicode码转成utf-8码
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* unicode转成string
* @param str
* @return
*/
public static String unicodeToString(String str) {

Pattern pattern = Pattern.compile("(\\u(\p{XDigit}{4}))");
Matcher matcher = pattern.matcher(str);
char ch;
while (matcher.find()) {
//group 6728
String group = matcher.group(2);
//ch:'木' 26408
ch = (char) Integer.parseInt(group, 16);
//group1 u6728
String group1 = matcher.group(1);
str = str.replace(group1, ch + "");
}
return str;
}

转换结果:
<MSG><RES><RES.1>2020-07-12 10:34:31</RES.1><RES.2>0</RES.2><ERR Code="00000.01">未查询到挂号信息或挂号信息己超过有效期!</ERR></RES></MSG>

原文地址:https://www.cnblogs.com/xiaofengshan/p/13287369.html