在我们的 Jersey REST 服务中,我们将 —
作为 JSON 对象中的元素发送回浏览器客户端。但是使用我的服务的浏览器 JQuery 客户端并没有将其解码为文字 -
,而是将其显示为 —
(编码值本身)。
想知道我是否必须在 Jersey 或 JSON 解析器中进行任何设置更改,以便客户端浏览器将其理解为文字 -
。我以 UTF-16 格式从 Jersey 发送输出 JSON。感谢任何帮助。
最佳答案
—
在 HTML 或 XML 中可能有效。但在 JSON 中,它是 \u2014
(2014 是十进制数 8212 的十六进制表示):
{
"trip": "New York \u2014 Chicago"
}
您可以通过 JSONLint 查看.
顺便说一句:您到底是如何生成 JSON 输出的?您不需要关心字符编码的细节。 Jersey 应该为您做到这一点。
更新: 显然,您的初始数据是 HTML 或 XML 编码的(无论出于何种原因)。因此,解决方案是在将其作为 JSON 发送之前撤消编码。 Jersey 将处理剩下的事情。
如果您的数据仅针对某些字符进行 HTML/XML 编码,而不是一般字符,那么您就会遇到需要在更接近源的地方进行修复的问题。
关于java - — 特殊字符解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11474708/