【问题标题】:How can I determine which encoding JSON.stringify() used?如何确定 JSON.stringify() 使用了哪种编码?
【发布时间】:2016-01-21 21:51:54
【问题描述】:

我正在组合一个节点/express 应用程序,它将返回使用JSON.stringify() 序列化的 JSON。我想将Content-Type HTTP 标头设置为包含编码信息——例如application/json; charset=utf-16

我的理解是JSON.stringify() 可能会产生UTF-16UCS-2 编码结果。我如何知道使用哪种编码来序列化 JSON,以及通知用户代理正确编码的最佳方式是什么?

【问题讨论】:

  • 我弄错了UCS-2UTF-16。它们在内部用于 javascript 运行时,但不一定与 JSON.stringify() 相关。但是,我仍然很好奇如何检查使用了什么编码(或者参考显示JSON.stringify() 可以/只会产生UTF-8

标签: json node.js encoding content-type v8


【解决方案1】:

据我了解,它返回String 类型的实例,该实例被定义为零个或多个16 位无符号整数的序列(参见spec)。

我引用上面的链接:

String 值是 String 类型的成员。序列中的每个整数值通常代表一个 16 位的 UTF-16 文本单元。但是,ECMAScript 对这些值没有任何限制或要求,只是它们必须是 16 位无符号整数。

因此,我猜它是定义的实现。 This 可能是您感兴趣的规范部分。

【讨论】:

    猜你喜欢
    • 2020-08-06
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2013-03-19
    • 2018-09-13
    • 2021-07-30
    相关资源
    最近更新 更多