我的应用程序采用Java字符串并将其置于JSON响应中,它适用于IE但由于某些原因在Chrome和Firefox上我没有看到页面上的数据,我没有得到任何控制台错误,我确实得到了响应对象,能够在Firebug和Chrome调试工具上检查它.
我正在使用Java 6,并且有问题的String是从Oracle DB的CLOB列创建的:
下午4:42 <
这是上面String的十六进制代码,就像在Oracle上一样:
34,3a,34,32,20,50,4d,e2,80,a8,3c
正如你所看到的,在"M"(4d)和"<"(3c)之间我们有值e2,80,a8,根据UTF-8是行分隔符(e280a8),我测试了我的应用程序只添加子字符串直到"M",它适用于所有浏览器,但是当我包含一个字符时,它会中断.因此可以肯定地说这个角色正在引发这个问题.
Java控制台将字符串输出为:
下午4:42 - <
其字节值为:
52,58,52,50,32,80,77,-30,-128,-88,60
由于我知道在"M"和"<"之间不应该有换行符或其他任何内容,我认为解决方案是擦除该字符,但desc = desc.replaceAll("
", "");
似乎不起作用.
有什么建议?
字节是UTF-8,它是Unicode行分隔符"\u2028"
.你是对的.
desc = desc.replace("\u2028", "");