博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工具方法json数据的Unicode乱码
阅读量:6791 次
发布时间:2019-06-26

本文共 2905 字,大约阅读时间需要 9 分钟。

今天在爬取一个网站返回的一段json数据但是一看吓一跳

查询得知这是为了更好的传输中文,json进行了Unicode编码。

下面是工具方法:

  

1 public static String decodeUnicode(String theString) {     2         char aChar;     3         int len = theString.length();     4         StringBuffer outBuffer = new StringBuffer(len);     5         for (int x = 0; x < len;) {     6             aChar = theString.charAt(x++);     7             if (aChar == '\\') {     8                 aChar = theString.charAt(x++);     9                 if (aChar == 'u') {    10                     // Read the xxxx    11                     int value = 0;    12                     for (int i = 0; i < 4; i++) {    13                         aChar = theString.charAt(x++);    14                         switch (aChar) {    15                         case '0':    16                         case '1':    17                         case '2':    18                         case '3':    19                         case '4':    20                         case '5':    21                         case '6':    22                         case '7':    23                         case '8':    24                         case '9':    25                             value = (value << 4) + aChar - '0';    26                             break;    27                         case 'a':    28                         case 'b':    29                         case 'c':    30                         case 'd':    31                         case 'e':    32                         case 'f':    33                             value = (value << 4) + 10 + aChar - 'a';    34                             break;    35                         case 'A':    36                         case 'B':    37                         case 'C':    38                         case 'D':    39                         case 'E':    40                         case 'F':    41                             value = (value << 4) + 10 + aChar - 'A';    42                             break;    43                         default:    44                             throw new IllegalArgumentException(    45                                     "Malformed   \\uxxxx   encoding.");    46                         }    47         48                     }    49                     outBuffer.append((char) value);    50                 } else {    51                     if (aChar == 't')    52                         aChar = '\t';    53                     else if (aChar == 'r')    54                         aChar = '\r';    55                     else if (aChar == 'n')    56                         aChar = '\n';    57                     else if (aChar == 'f')    58                         aChar = '\f';    59                     outBuffer.append(aChar);    60                 }    61             } else    62                 outBuffer.append(aChar);    63         }    64         return outBuffer.toString();    65     }

 

欢迎大家一起说出自己的想法。

转载地址:http://zwlgo.baihongyu.com/

你可能感兴趣的文章
防范Sql注入式攻击
查看>>
创建3层的服务模板 (3)-- Guest OS Profile, Hardware Profile 和 IP Pools
查看>>
批量删除mysql一个库所有数据表方法
查看>>
切换jdk,tomcat脚本
查看>>
nginx优化
查看>>
从图形化界面安装RHEL5操作系统详解
查看>>
私有云的优势
查看>>
MongoDB详解(二)
查看>>
日志分析程序webalizer添加中文支持
查看>>
oracle 发邮件 存储过程
查看>>
银行支付接口Webservice之四
查看>>
threadLocal源码及其原理分析
查看>>
正则表达式
查看>>
转场动画
查看>>
企业号OAuth2.0验证企业用户接口
查看>>
我的友情链接
查看>>
lduan Exchange 2013 策略功能(十二)
查看>>
centos6 连接数修改
查看>>
java.security.InvalidKeyException: Illegal key size or default parameters
查看>>
Oracle10gR2 on SuSE9 x86_86安装技术文档(原版英文)
查看>>