今天在做一个新浪微博的抓取测试,发现抓取后的内容是Unicode编码的,完全找不到熟悉的汉字了,下面搜索出来的一种方法,完全可行,只是不知到Java内部是否提供了相关的类库。

实现方法如下:

  public static String fromEncodedUnicode(char[] in, int off, int len) {

         char aChar;

         char[] out = new char[len]; 

         int outLen = 0;

         int end = off + len;

         while (off < end) {

             aChar = in[off++];

             if (aChar == '\\') {

                 aChar = in[off++];

                 if (aChar == 'u') {

                     // Read the xxxx

                     int value = 0;

                     for (int i = 0; i < 4; i++) {

                         aChar = in[off++];

                         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 \\uxxxx encoding.");

                         }

                     }

                     out[outLen++] = (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';

                     }

                     out[outLen++] = aChar;

                 }

             } else {

                 out[outLen++] = (char) aChar;

             }

         }

         return new String(out, 0, outLen);

     }

在 Java 中将 Unicode 编码的汉字转码的更多相关文章

  1. Java与编码问题串讲之二–如何理解java采用Unicode编码

    Java开发者必须牢记:在Java中字符仅以一种形式存在,那就是Unicode(不选择任何特定的编码,直接使用他们在字符集中的编号,这是统一的唯一方法).由于java采用unicode编码,char  ...

  2. 如何理解java采用Unicode编码

    http://blog.csdn.net/gjb724332682/article/details/43229563 Java中字符仅以一种形式存在,那就是Unicode.由于java采用unicod ...

  3. java测试Unicode编码以及数组的运用(初学篇)

    /*第二章第四小题*/ /* * (1)编写一个应用程序,给出汉字“你” ,“我”,“他”在Unicode 表中的位置 * (2)编写一个java应用程序,输出全部的希腊字母 */ public cl ...

  4. java中unicode utf-8以及汉字之间的转换工具类

    1.       汉字字符串与unicode之间的转换 1.1          stringToUnicode /** * 获取字符串的unicode编码 * 汉字"木"的Uni ...

  5. python2中将Unicode编码的中文和str相互转换

    在python2x版本中 关于中文汉字转换 1.中文------字符串格式 >>> s = '汉字' >>> type(s) <type 'str'> ...

  6. jmeter响应数据Unicode编码转换为汉字

    2018-07-09     10:24:34 每次用jmeter做接口测试时,响应信息中文总是显示Unicode编码格式,每次都要在网上寻找这一段转换的代码,但是我发现在网上找这段代码有点麻烦,像我 ...

  7. JAVA转化Unicode编码

    package yyl.example.basic.codec; import java.util.Locale; import java.util.regex.Matcher; import jav ...

  8. Unicode编码转换汉字

    Uri.UnescapeDataString(string) #region Unicode转换汉字 Console.WriteLine(Uri.UnescapeDataString("\u ...

  9. unicode编码转汉字

    String hexB = Integer.toHexString(utfBytes[byteIndex]);   //转换为16进制整型字符串 if (hexB.length() <= 2)  ...

随机推荐

  1. 设计模式六大原则——合成/聚合复用原则(CARP)

    1.定义 简而言之,对于合成/聚合复用原则的定义就是:要尽量使用合成和聚合,尽量不要使用继承. 2.释义 为什么"要尽量使用合成和聚合.尽量不要使用继承"呢? 这是由于: 第一,继 ...

  2. delphi Edit - TActionList

    Edit     TEditCut     TEditCopy     TEditpaste     TEditSelectAll     TEditUndo     TEditDelete   编辑 ...

  3. 小白日记36:kali渗透测试之Web渗透-手动漏洞挖掘(二)-突破身份认证,操作系统任意命令执行漏洞

    手动漏洞挖掘 ###################################################################################### 手动漏洞挖掘 ...

  4. iOS实现自定义的弹出视图(popView)

    前段时间,在项目中有个需求是支付完成后,弹出红包,实现这么一个发红包的功能.做了最后,实现的效果大致如下: 一.使用方法 整个ViewController的代码大致如下 // //  SecondVi ...

  5. 记录asp.net网站停止运行原因的代码

    记录网站是什么原因导致停止运行还是有必要的,下面是具体的实现方式. protected void Application_End(object sender, EventArgs e) { Recor ...

  6. 在Code first中使用数据库里的视图

    如果想在Code first中使用数据库里的视图 (不管你出于什么原因),目前的方法有2种. 一.使用Database.SqlQuery<T>("查询语句"),如: v ...

  7. 终于又可以用WLW了.

    前面有一段时间没有写博客,然后过完年想继续用WLW的时候,出现问题了. An unexpected error occurred while attempting to detect weblog s ...

  8. linux云计算集群架构学习笔记:命令查看文件内容

    查看文件内容 1.cat 命令 作用:查看文件内容 语法:cat 文件名 2. more 命令 作用:分页查看文件内容 语法:more  文件名 例:more /etc/passwd 按下回车刷新一行 ...

  9. Java从Jar文件中动态加载类

    动态加载jar包,在实际开发中经常会需要用到,尤其涉及平台和业务的关系的时候,业务逻辑部分可以独立出去交给业务方管理,业务方只需要提供jar包,就能在平台上运行. 下面通过一个实例来直观演示: 第一: ...

  10. python方式实现scoket通信

    要想明白这个网络通信还真的是离不开实现它实现流程图,看明白了大体很多都知道,觉得这个博主画的不错,地址是 http://www.cnblogs.com/wangcq/p/3520400.html 1. ...