我的应用程序采用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("
", "");
似乎没有工作
有什么建议吗?
答案 0 :(得分:5)
字节为UTF-8,它是Unicode行分隔符"\u2028"
。你是对的。
desc = desc.replace("\u2028", "");