如何避免fastjson对于unicode码的\uxxxx格式中\进行特殊字符过滤

贾懂凯 发布于 2013/05/02 22:49
阅读 4K+
收藏 0

@wenshao 你好,想跟你请教个问题:rt

加载中
0
wenshao
wenshao

刚测试过:

     System.out.println(JSON.toJSONString("中国", SerializerFeature.BrowserCompatible));
    System.out.println(JSON.toJSONString("\u4E2D\u56FD", SerializerFeature.BrowserCompatible));

输出的结果都是:

"\u4E2D\u56FD"

你用的fastjson什么版本?我测试的是1.1.30,但是这一块几乎没有改过。

贾懂凯
1.1.23 ,1.1.30ok了
0
wenshao
wenshao
能更详细描述你的问题么
贾懂凯
我的接口给前端返回jsonp格式数据,如果页面主体是gbk,而jsonp是utf-8,在IE6-IE8不能正确识别reponse header中的Content-Type,无法自动转码。故我需要将中文转变成\uxxxx的形式。 而fastjson将\作为特殊字符进行了转义成\\uxxxx,我需要保持原样输出 \uxxxx. 谢谢
0
wenshao
wenshao

JSON.toJSONString("中国", SerializerFeature.BrowserCompatible)

输出

"\u4E2D\u56FD"

贾懂凯
单纯用DisableCheckSpecialChar也不能解决问题,我只是想免掉\uxxxx(unicode明文?)的特殊字符过滤
贾懂凯
实际测试: System.out.println(JSON.toJSONString("\u4E2D\u56FD", SerializerFeature.BrowserCompatible)); => "中国" ////// 如果是"中国" 亦=> "中国"/////我希望输出的是\u4E2D\u56FD
返回顶部
顶部