简单轻松实现unicode和中文字符之间切换
一 unicode字符转换为中文
二 中文转换为unicode
三 判断中文字符函数
四 测试
运行结果:
一龥ooo博学asdf多才
\u535a\u5b66asdf\u591a\u624d
一 unicode字符转换为中文
public String unicode2Chinese(String str) {
StringBuffer sb = new StringBuffer();
StringTokenizer st = new StringTokenizer(str, "\\u");
while(st.hasMoreElements()) {
String value = st.nextElement().toString();
//System.out.println(value.substring(5));
Integer intValue = Integer.parseInt(value.substring(0, 4), 16); sb.append((char)intValue.intValue()).append(value.substring(4, value.length()));
}
return sb.toString();
}
二 中文转换为unicode
public String chinese2Unicode(String str) {
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length(); i++) {
char c = (char)str.charAt(i);
if(isChineseCharacter(c))
sb.append("\\u").append(Integer.toHexString((int)c));
else
sb.append(c);
}
return sb.toString();
}
三 判断中文字符函数
private boolean isChineseCharacter(char c) {
int value = (int)c;
int low = Integer.parseInt("4e00", 16);
int up = Integer.parseInt("9fa5", 16);
if(value > low && value < up) return true;
return false;
}
四 测试
public static void main(String args[]) {
//\u4e00-\u9fa5中文编码范围
Unicode2Chinese u2c = new Unicode2Chinese();
String str = u2c.unicode2Chinese("\\u4e00\u9fa5ooo\\u535a\\u5b66asdf\\u591a\\u624d");
System.out.println(str);
System.out.println(u2c.chinese2Unicode("博学asdf多才"));
}
运行结果:
一龥ooo博学asdf多才
\u535a\u5b66asdf\u591a\u624d