源码展示:
public class UnicodeUtil {
/**
* 中文转unicode字符串
*
* @param cn
* @return
*/
public static String cnToUnicode(String cn) {
StringBuilder sb = new StringBuilder();
if (cn == null || cn.length() == 0) {
return sb.toString();
}
char[] chars = cn.toCharArray();
for (char c : chars) {
sb.append("\\u" + Integer.toString(c, 16));
}
return sb.toString();
}
/**
* unicode字符串转中文
*
* @param unicodeStr
* @return
*/
public static String unicodeToCn(String unicodeStr) {
StringBuilder sb = new StringBuilder();
if (unicodeStr == null || unicodeStr.length() == 0) {
return sb.toString();
}
unicodeStr = unicodeStr.substring(2);
String[] arrs = unicodeStr.split("\\\\u");
for (String arr : arrs) {
sb.append((char) Integer.valueOf(arr, 16).intValue());
}
return sb.toString();
}
// main方法测试
public static void main(String[] args) {
String[] strArr = new String[4];
strArr[0] = cnToUnicode("普通的字符描述!");
strArr[1] = cnToUnicode("四个空格: 。 ");
strArr[2] = cnToUnicode(null);
strArr[3] = cnToUnicode("制表符:\t。");
String[] unicode = new String[4];
int i = 0;
for (String str : strArr) {
System.out.println(str);
unicode[i] = unicodeToCn(str);
i++;
}
for (String uc : unicode) {
System.out.println(uc);
}
}
}
测试输出结果:
\u666e\u901a\u7684\u5b57\u7b26\u63cf\u8ff0\uff01
\u56db\u4e2a\u7a7a\u683c\uff1a\u20\u20\u20\u20\u3002\u20
\u5236\u8868\u7b26\uff1a\u9\u3002
普通的字符描述!
四个空格: 。
制表符: 。
网友评论