JSON.stringify()到UTF-8

Seb*_*rth 7 javascript json utf-8 utf-16

据我所知,Javascript使用UTF-16作为字符串的标准.使用JSON.stringify(),我可以从对象创建一个JSON字符串.

那个JSON字符串是UTF-16编码的吗?

我可以将该字符串转换(希望快)到UTF-8以节省大文件(1MB JSON)的带宽吗?

Lig*_*ica 5

JavaScript 引擎可以使用 UCS-2 或 UTF-16。

所以,是的,JSON.stringify()将以您的实现用于字符串的任何编码返回一个字符串。如果您想找到一种方法来更改脚本上下文中的编码,它将不再是有效的 JavaScript 字符串。

但是,为了通过网络对其进行序列化,我希望它会自动转码为 HTTP 请求的字符集(假设您在谈论 HTTP)。因此,如果您通过带有 UTF-8 字符集的 HTTP POST 发送它,您的浏览器应该在发送之前透明地处理该数据的转码。

否则浏览器真的会在字符集处理上挣扎。

  • 如果您碰巧使用一些处理 `Uint8Array` (原始字节)的 API,那么您可以使用 `new TextEncoder( "utf-8").encode(JSON.stringify(object))` (5认同)