【问题标题】:Jackson JSON Handling of Unicode symbolsJackson JSON 处理 Unicode 符号
【发布时间】:2016-11-01 09:41:03
【问题描述】:

我正在调用一个 Web 服务,它返回包含表示 ® 符号的 ascii 符号的文本。例如:

ACME Corp® Services

我使用 spring 将这个文本数据直接作为 JSON 对象返回,当它进入浏览器时,json 数据仍然正确:

"service": "ACME Corp® Services"

但是在通过Handlebars 模板呈现并写入我得到的页面时:

ACME Corp® Services

我需要在使用JSON 数据之前对其进行清理吗?如果是这样,这样做的最佳做法是什么?否则,也许我应该在后端进行更改,但我不确定那会是什么。

【问题讨论】:

标签: java json unicode jackson utf


【解决方案1】:

您不需要清理内容,但您必须确保它使用 JSON 规范允许的有效编码:通常是 UTF-8(替代方案是 UTF-16 和 UTF-32)。

如果内容未编码为 UTF-8 而是其他编码(如 ISO-8859-1 aka "Latin-1"),您将需要构造 Reader 以正确解码:

Reader r = new InputStreamReader(in, StandardCharset.ISO_8859_1);
MyPOJO pojo = mapper.readValue(r, MyPOJO.class);

您似乎遇到的问题是使用的编码不正确。

【讨论】:

    猜你喜欢
    • 2014-07-05
    • 2018-12-05
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 2011-10-03
    相关资源
    最近更新 更多