在做http请求时,有时候服务器传回的数据中会遇到传回数据为Unicode的情况,为此需要进行Unicode转UTF-8的转化,代码:

  1. public class StringTest {
  2.  
  3. /**
  4. * @param args
  5. */
  6. public static void main(String[] args) {
  7. String str="\u7528\u6237\u540d\u6216\u5bc6\u7801\u4e0d\u6b63\u786e\uff0c\u8bf7\u91cd\u8bd5";
  8. System.out.println(decodeUnicode("111"));
  9. }
  10.  
  11. private static String decodeUnicode(String theString) {
  12. char aChar;
  13. int len = theString.length();
  14. StringBuffer outBuffer = new StringBuffer(len);
  15. for (int x = 0; x < len;) {
  16. aChar = theString.charAt(x++);
  17. if (aChar == '\\') {
  18. aChar = theString.charAt(x++);
  19. if (aChar == 'u') {
  20. // Read the xxxx
  21. int value = 0;
  22. for (int i = 0; i < 4; i++) {
  23. aChar = theString.charAt(x++);
  24. switch (aChar) {
  25. case '0':
  26. case '1':
  27. case '2':
  28. case '3':
  29. case '4':
  30. case '5':
  31. case '6':
  32. case '7':
  33. case '8':
  34. case '9':
  35. value = (value << 4) + aChar - '0';
  36. break;
  37. case 'a':
  38. case 'b':
  39. case 'c':
  40. case 'd':
  41. case 'e':
  42. case 'f':
  43. value = (value << 4) + 10 + aChar - 'a';
  44. break;
  45. case 'A':
  46. case 'B':
  47. case 'C':
  48. case 'D':
  49. case 'E':
  50. case 'F':
  51. value = (value << 4) + 10 + aChar - 'A';
  52. break;
  53. default:
  54. throw new IllegalArgumentException(
  55. "Malformed \\uxxxx encoding.");
  56. }
  57.  
  58. }
  59. outBuffer.append((char) value);
  60. } else {
  61. if (aChar == 't')
  62. aChar = '\t';
  63. else if (aChar == 'r')
  64. aChar = '\r';
  65. else if (aChar == 'n')
  66. aChar = '\n';
  67. else if (aChar == 'f')
  68. aChar = '\f';
  69. outBuffer.append(aChar);
  70. }
  71. } else
  72. outBuffer.append(aChar);
  73. }
  74. return outBuffer.toString();
  75. }
  76.  
  77. }

java Unicode转UTF-8代码的更多相关文章

  1. Java 字符编码 ASCII、Unicode、UTF-8、代码点和代码单元

    1 ASCII码 统一规定英语字符与二进制位之间的关系.ASCII码一共规定了128个字符的编码.例如,空格“SPACE”是32(二进制00100000),大写字母A是65(二进制01000001). ...

  2. paip.java 注解的详细使用代码

    paip.java 注解的详细使用代码 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...

  3. Unicode、UTF-8 和 ISO8859-1

    Unicode.UTF-8 和 ISO8859-1到底有什么区别 1.本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文" ...

  4. 在Java中直接调用js代码(转载)

    http://blog.csdn.net/xzyxuanyuan/article/details/8062887 JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Ja ...

  5. 在Java中直接调用js代码

    JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert ...

  6. java 覆盖hashCode()深入探讨 代码演示样例

    java 翻盖hashCode()深入探讨 代码演示样例 package org.rui.collection2.hashcode; /** * 覆盖hashcode * 设计HashCode时最重要 ...

  7. JAVA_eclipse 保留Java文件时自动格式化代码和优化Import

    Eclipse 保存Java文件时自动格式化代码和优化Import Eclipse中format代码的快捷方式是ctrl+shift+F,如果大家想保存 java文件的时候 自动就格式化代码+消除不必 ...

  8. 兼容PHP和Java的des加密解密代码分享

    这篇文章主要介绍了兼容PHP和Java的des加密解密代码分享,适合如服务器是JAVA语言编写,客户端是PHP编写,并需要des加密解密的情况,需要的朋友可以参考下 作为一个iOS工程师来解决安卓的问 ...

  9. Java生成MD5加密字符串代码实例

    这篇文章主要介绍了Java生成MD5加密字符串代码实例,本文对MD5的作用作了一些介绍,然后给出了Java下生成MD5加密字符串的代码示例,需要的朋友可以参考下   (1)一般使用的数据库中都会保存用 ...

  10. 完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络]

    完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络] 地址:http://blog.csdn.net/qq_35101189/article/details/53729720?ref=m ...

随机推荐

  1. [转载] 4. JebAPI 之 jeb.api.ui

    本文转载自: https://www.zybuluo.com/oro-oro/note/145250 JebInstance可以通过getUI()方法来获得jeb.api.ui.JebUI. JebU ...

  2. js浮点数计算问题 + 金额大写转换

    一 js浮点数计算问题解决方案: 1.使用 NumberObject.toFixed(num) 方法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 2.较精度计算浮点数 ...

  3. oracle 创建数据表空间和用户

    --创建临时表空间(不必须)create temporary tablespace zwtest tempfile 'D:\Java\oracle\oradata\zwtest.dbf' size 5 ...

  4. Java 基础知识总结 (三、运算符)

    三.Operators 运算符 Assignment Operators(赋值运算符) =   +=   -=   %=   *=   /=    <<=     >>=    ...

  5. UTF-8 <==> unicode(WCHAR)

    static int fetchWordFromUTF8(const chConstStringA& strText, WCHAR& result) { int nLength = s ...

  6. 图解Android Studio导入Eclipse项目源码

    方法/步骤   打开Android Studio,在主页面中选择"File"->"New"->"Import project...&quo ...

  7. GIS开发环境全面升级10.1

    最近,因为公司开发的需要,对开发环境进行全面的升级,在这其中也遇到了不少问题,在之后将陆续整理出来,以便以后查看. 之前开发环境:VS2008,ArcGIS9.3,ArcEngine9.3,Oracl ...

  8. workerman 的属性

    <?php /** * Created by PhpStorm. * User: zeopean * Date: 2016-08-26 * Time: 16:35 */ use Workerma ...

  9. KMP字符串匹配算法

    static void Main(string[] args) { var d = KMP("abcabcadabc55abcabcadabc55", "abcabcad ...

  10. c#开发Mongo笔记第九篇

    用skip略过少量的文档还是不错的.但是要是数量非常多的话,skip就会变得很慢,因为要先找到需要被略过的数据,然后再抛弃这些数据.大多数数据库都会在索引中保存更多的元数据,用于处理skip, 但是m ...