标签:
前提:服务端使用的是.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(); } }
标签:
原文地址:http://blog.csdn.net/u011131296/article/details/43112617