`
lean1252
  • 浏览: 214709 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics