unicode和中文字符互相转换

简单轻松实现unicode和中文字符之间切换

一 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值