我正在编写一个使用 json 来表示其资源的 Web 服务,我有点不知所措,想不出对 json 进行编码的最佳方法。阅读 json rfc (http://www.ietf.org/rfc/rfc4627.txt)可以清楚地看到,首选编码是 utf-8。但是 rfc 也描述了用于指定字符的字符串转义机制。我假设这通常用于转义 non-ascii 字符,从而产生 utf-8有效的 ascii。
假设我有一个 json 字符串,它包含非 ascii 的 unicode 字符(代码点)。我的网络服务应该只是 utf-8编码,并返回它,还是应该逃避所有这些非 ascii 字符,并返回纯 ascii?
我希望浏览器能够使用 jsonp 或 eval 执行结果。这会影响你的决定吗?我对各种浏览器对 utf-8的 javascript 支持的了解不足。
编辑: 我想澄清一下,我对于如何对结果进行编码的主要关注点实际上是浏览器对结果的处理。我读到的内容表明,浏览器在特别使用 JSONP 时可能对编码非常敏感。我还没有找到任何关于这个主题的有用信息,所以我将不得不开始做一些测试,看看会发生什么。理想情况下,我希望只转义那些所需的少量字符,并且只对结果进行 utf-8编码。