將字串中的(漢字Unicode編碼)解析成漢字,unicode編碼
前提:服務端使用的是.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();}}