package charset;
public class UnicodeUtil {
//中文转Unicode
public static String gbEncoding(final String gbString) { //gbString = "测试"
char[] utfBytes = gbString.toCharArray(); //utfBytes = [测, 试]
String unicodeBytes = "";
for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {
String hexB = Integer.toHexString(utfBytes[byteIndex]); //转换为16进制整型字符串
if (hexB.length() <= 2) {
hexB = "00" + hexB;
}
unicodeBytes = unicodeBytes + "\\u" + hexB;
}
System.out.println("unicodeBytes is: " + unicodeBytes);
return unicodeBytes;
}
//Unicode转中文
public static String unicode2String(String unicode) {
StringBuffer sb = new StringBuffer();
String[] arr = unicode.split("\\\\u");
int len = arr.length;
System.out.println(len);
sb.append(arr[0]);
for (int i = 1; i < len; i++) {
String tmp = arr[i];
char c = (char) Integer.parseInt(tmp.substring(0, 4), 16);
sb.append(c);
sb.append(tmp.substring(4));
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(unicode2String("\u6d4b\u8bd5\u5927\u53f7\u548c\u5584\n\u6d4b\u8bd5\u5927\u53f7\u548c\u5584"));
}
}