zoukankan      html  css  js  c++  java
  • 使用gson在解析unicode时遇到的问题

    之前在用gson解析的时候未记录下来,所以今天做一个小的总结,

    比如遇到像这种"u003d"的unicode的字符,我们想解码这个字符,用gson可以这样表达

    Gson gson=new Gson();
            String s2 = ""{\"hi\":\"\u003d\"}"";
            System.out.println("s2:"+s2);
            String s = gson.fromJson(s2, String.class);
            System.out.println(s);

    上面的输出结果为

    s2:"{"hi":"u003d"}"

    {"hi":"="}

    可见传入到json中的字符串必须是带转义字符的,且格式必须是正确的,否则会出错,

    同样的,解码一个unicode字符也可以使用URLDecoder,这个对unicode的直接解析比较方便。

    代码如下:

    	String ss = URLDecoder.decode("u003d","utf-8");
    		System.out.println(ss);
    

      上面的代码输出如下:

    =

    该方法较上一种方便很多。

     

     

    另外利用gson转换成json字符串的时候会自动编码特殊字符,如果要忽略此功能,则使用

    new GsonBuilder().disableHtmlEscaping().create()

    创建gson对象即可。

    ------------------------------------------------------------------------------------------------------

    此处分割线,楼主最近又发现一个奇怪的问题,上面的URLDecoder中传入的如果是这种字面量,他是可以解析的,其实直接用java的println打出来也是中文,但是如果不是这种字面量,那问题就比较麻烦了,因为即使是一样的字符串,他也是不能解码的,,后来楼主在网上的一片博客中找到了另一种方法,即使用org.apache.commons.lang.StringEscapeUtils#unescapeJava(String) 这是使用apache提供的包里的工具,如果你的工程里没有引用这个,也不用担心,原博客提供了另外一种方法,此处贴上博客地址,http://blog.csdn.net/djun100/article/details/12128057  他好像也是转的,,,所以就找不到原作者了,,,,

     

  • 相关阅读:
    Tabs 选项卡插件(续)
    Menu 菜单插件
    jquery Star Rating - 星形评级插件
    Tabs 选项卡插件
    jQuery Tooltips插件
    jQuery信息提示插件(jQuery Tooltip Plugin)
    Accordion 手风琴 折叠菜单插件
    Calendars 日历插件
    Microsoft Windows 2000 professional(集成SP4)简体中文专业版下载
    俄罗斯商务资讯网(门户网站)
  • 原文地址:https://www.cnblogs.com/fred-chan/p/5110112.html
Copyright © 2011-2022 走看看