[Java] unicode解码(unicode编码转中文) →→→→→进入此内容的聊天室

来自 , 2020-01-08, 写在 Java, 查看 130 次.
URL http://www.code666.cn/view/fa83a11a
  1. /**
  2.  * 工具类
  3.  */
  4. public class Util {
  5.  
  6.         /**
  7.          * unicode解码(unicode编码转中文)
  8.          *
  9.          * @param theString
  10.          * @return
  11.          */
  12.         public static String unicodeDecode(String theString) {
  13.                 char aChar;
  14.                 int len = theString.length();
  15.                 StringBuffer outBuffer = new StringBuffer(len);
  16.                 for (int x = 0; x < len;) {
  17.                         aChar = theString.charAt(x++);
  18.                         if (aChar == '\\') {
  19.                                 aChar = theString.charAt(x++);
  20.  
  21.                                 if (aChar == 'u') {
  22.                                         // Read the xxxx
  23.                                         int value = 0;
  24.                                         for (int i = 0; i < 4; i++) {
  25.                                                 aChar = theString.charAt(x++);
  26.                                                 switch (aChar) {
  27.                                                 case '0':
  28.                                                 case '1':
  29.                                                 case '2':
  30.                                                 case '3':
  31.                                                 case '4':
  32.                                                 case '5':
  33.                                                 case '6':
  34.                                                 case '7':
  35.                                                 case '8':
  36.                                                 case '9':
  37.                                                         value = (value << 4) + aChar - '0';
  38.                                                         break;
  39.                                                 case 'a':
  40.                                                 case 'b':
  41.                                                 case 'c':
  42.                                                 case 'd':
  43.                                                 case 'e':
  44.                                                 case 'f':
  45.                                                         value = (value << 4) + 10 + aChar - 'a';
  46.                                                         break;
  47.                                                 case 'A':
  48.                                                 case 'B':
  49.                                                 case 'C':
  50.                                                 case 'D':
  51.                                                 case 'E':
  52.                                                 case 'F':
  53.                                                         value = (value << 4) + 10 + aChar - 'A';
  54.                                                         break;
  55.                                                 default:
  56.                                                         throw new IllegalArgumentException(
  57.                                                                         "Malformed   \\uxxxx   encoding.");
  58.                                                 }
  59.                                         }
  60.                                         outBuffer.append((char) value);
  61.                                 } else {
  62.                                         if (aChar == 't')
  63.                                                 aChar = '\t';
  64.                                         else if (aChar == 'r')
  65.                                                 aChar = '\r';
  66.                                         else if (aChar == 'n')
  67.                                                 aChar = '\n';
  68.                                         else if (aChar == 'f')
  69.                                                 aChar = '\f';
  70.                                         outBuffer.append(aChar);
  71.                                 }
  72.                         } else
  73.                                 outBuffer.append(aChar);
  74.                 }
  75.                 return outBuffer.toString();
  76.         }
  77. }

回复 "unicode解码(unicode编码转中文)"

这儿你可以回复上面这条便签

captcha