使用json_write()时有两个unicode代码点?

时间:2013-09-04 10:10:30

标签: jquery c++ json unicode boost-propertytree

使用boost::property_tree::write_json()编写JSON文件时,所有unicode字符将表示为两个“/ u”代码点。

  • 因此ä将成为\u00C3\u00A4

我的问题是,我正在生成一个JSON文件,该文件将通过JQuery读取以显示在网页中。在这种情况下,该对将显示为两个分离的unicode符号。

  • 所以ä看起来像ä

有没有办法配置输出编码以获得单个Utf16代码点?或者有没有办法告诉jQuery使用两个代码点作为一个?

另外,为什么ä变为\u00C3\u00A4而不是\u00E4?我真的不明白。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

那是因为它被编码为“UTF-8”,如果输出错误,那么它要么被编码了两次,要么因为它没有被“理解”为UTF-8。这可能是因为网页未正确设置为“使用UTF-8”。页面上的标题需要Content-Type: text/html; charset=utf-8或其他内容。