【问题标题】:Why is node.js decoding the same string differently on different platforms?为什么 node.js 在不同平台上对相同字符串的解码方式不同?
【发布时间】:2019-02-28 13:46:37
【问题描述】:

我目前有这个字符串,ƴǮǮȏϘЁЎϊդ࠷ࡔც,我用encodeURIComponent JS 将其编码为%C6%B4%C7%AE%C7%AE%C8%8F%CF%98%D0%81%D0%8E%CF%8A%D5%A4%E0%A0%B7%E0%A1%94%E1%83%AA

当我尝试在 Linux 上的 node.js 中使用 decodeURIComponent 对其进行解码时,我确实得到了原始字符串。但是,当我尝试在 Windows 上使用 node.js 对其进行解码时,我得到了这个:ƴǮǮÈϘÐЎϊդ࠷ࡔც。有什么原因吗?对我来说,不同平台的输出不同,这似乎很奇怪。

这只是在不同的编码中秘密地相同吗?如何将此 Windows 字符串转换回我想要的原始形式?

【问题讨论】:

    标签: node.js windows character-encoding


    【解决方案1】:

    虽然您可能会遇到错误,但 Node.js 应该在每个平台上执行完全相同的操作。

    对我来说更可能的是以下解释之一:

    1. 每个平台的输入数据不同。
    2. 您用于检查输出的工具在每个平台上都不同,或者这些工具的设置不同。

    这就是你应该寻找的地方。

    对于它的价值,您发布的“字符串”已完全损坏。至少以您将其发布到堆栈溢出的方式。

    大多数 javascript 的字符串相关工具都需要 UTF-8,而您发布的内容... 可能有很多东西,但它看起来不像人类语言。看起来它“曾经是”某些编码中的有效文本,被错误的解码器误解,然后复制粘贴到 stackoverflow(即 UTF-8)。这是mojibake

    【讨论】:

      猜你喜欢
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 2016-02-22
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多