我正在调用一个返回文本的web服务,其中包含代表®符号的ascii符号。例如:
ACME Corp® Services
我使用spring直接将此文本数据作为JSON对象返回,当它进入浏览器时,json数据仍然正确:
"service": "ACME Corp® Services"
但是在通过Handlebars
模板呈现并写入页面后,我得到了:
ACME Corp® Services
在使用之前是否需要清理JSON
数据?如果是这样,那么这样做的最佳做法是什么?否则,也许我应该在后端做出改变,但我不确定那会是什么。
答案 0 :(得分:3)
您不需要清理内容,但必须确保它使用JSON规范允许的有效编码:通常为UTF-8(替代方案为UTF-16和UTF-32)。
如果内容未编码为UTF-8而是其他内容(例如ISO-8859-1
又名" Latin-1"),则需要构建Reader
以对其进行正确解码:
Reader r = new InputStreamReader(in, StandardCharset.ISO_8859_1);
MyPOJO pojo = mapper.readValue(r, MyPOJO.class);
您似乎遇到的问题是使用的编码不正确。