码迷,mamicode.com
首页 > 其他好文 > 详细

将字符串中的(汉字Unicode编码)解析成汉字

时间:2015-01-25 11:09:47      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

前提:服务端使用的是.Net做的网站,安卓端则是使用Java语言开发的,再次期间使用的传输数据格式是Json格式

平时在做项目的时候都是使用的java语言开发的服务端,所以在传输数据的时候虽然也是使用Json格式,但是数据里面并没有进行Unicode编码,在这次做项目的时候,由于是使用C#语言开发的,而且传递的数据里面含有汉字的Unicode编码,这时就需要在客户端对此Unicode编码进行解码,我找了一下字符串的提供的方法,并没有找到直接对汉字进行解码的方法,于是就查找资料自己写了一个解码的工具类,如果各位朋友知道其他的解码方法,请给留言哈,相互学习!下面请看具体的源码:

package com.momo.exchangeserver;
/**
 * 
 * 
 * @Description:解析含有Unicode汉字编码的字符串
 * @author:
 * @see:
 * @since:
 * @copyright © 
 * @Date:2015-1-25
 */
public class DecodeUnicode {
	
	/**
	 * 将Unicode编码解析成汉字
	 * @param pStr 包含(汉字的Unicode)编码的字符串
	 * @return
	 */
	public String decodeUnicode(String pStr) {
		char aChar;
		int len = pStr.length();
		StringBuffer outBuffer = new StringBuffer(len);
		for (int x = 0; x < len;) {
			aChar = pStr.charAt(x++);
			if (aChar == '\\') {
				aChar = pStr.charAt(x++);
				if (aChar == 'u') {
					int value = 0;
					for (int i = 0; i < 4; i++) {
						aChar = pStr.charAt(x++);
						switch (aChar) {
						case '0':
						case '1':
						case '2':
						case '3':
						case '4':
						case '5':
						case '6':
						case '7':
						case '8':
						case '9':
							value = (value << 4) + aChar - '0';
							break;
						case 'a':
						case 'b':
						case 'c':
						case 'd':
						case 'e':
						case 'f':
							value = (value << 4) + 10 + aChar - 'a';
							break;
						case 'A':
						case 'B':
						case 'C':
						case 'D':
						case 'E':
						case 'F':
							value = (value << 4) + 10 + aChar - 'A';
							break;
						default:
							throw new IllegalArgumentException(
									"Malformed      encoding.");
						}
					}
					outBuffer.append((char) value);
				} else {
					if (aChar == 't') {
						aChar = '\t';
					} else if (aChar == 'r') {
						aChar = '\r';
					} else if (aChar == 'n') {
						aChar = '\n';
					} else if (aChar == 'f') {
						aChar = '\f';
					}
					outBuffer.append(aChar);
				}
			} else {
				outBuffer.append(aChar);
			}
		}
		return outBuffer.toString();
	}

}


将字符串中的(汉字Unicode编码)解析成汉字

标签:

原文地址:http://blog.csdn.net/u011131296/article/details/43112617

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!