gpt4 book ai didi

javascript - 如何从 JavaScript 中的字符串中获取 ASCII 码?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:19:29 25 4
gpt4 key购买 nike

(类似的问题已经在 StackOverflow 上被问到,但不完全是这个。最近的可能是“javascript how to convert unicode string to ascii”,其中已经有评论“这必须是一个复制品[ licate]”。我读过一些类似的帖子,但它们没有回答我的具体问题。我查看了非常好的 W3Schools 网站,并且还谷歌搜索,但没有找到那样的答案。所以这里的任何提示都将不胜感激。)


我有一个字节数组被传递给一段 JavaScript。在 JavaScript 中,数据以字符串形式到达。我不知道传输机制,因为它来自第三方应用程序。我什至不知道字符串是“宽”还是“窄”。

在我的 JavaScript 中,我有一些代码,例如 b = str.charCodeAt(pos);

我的问题是像 0x86 = 134 这样的字节值作为字符 0x2020 = 8224 出现。这似乎是因为我的原始字节被解释为 Latin-1(可能)“ Dagger ”字符,然后被转换为等效的 Unicode 代码点。 (问题可能是也可能不是 JavaScript 的“错误”。)其他值也会出现类似的问题,尽管范围 0x00..0x7F 和 0xA0..0xFF 似乎没问题,但 0x80..0x9F 的大多数值都受到影响,在每个案例的值似乎都是原始 Latin-1 的 Unicode。

另一个观察是,如果长度以字节为单位测量,则字符串的长度是我对窄字符串的期望值。 (另一方面,如果 length 返回一个抽象字符的值,这不会告诉我任何信息。)

那么,在 JavaScript 中,有没有办法获取字符串中的“原始”字节,或者直接获取 Latin-1 或 ASCII 字符代码,或者在字符编码之间进行转换,或者定义默认值编码?

我可以编写自己的映射,但我宁愿不这样做。我希望这就是我最终会做的事情,但这有一种拼凑起来的感觉。

我也在研究是否可以在调用应用程序中进行调整(因为它可以将数据作为宽字符串传递,尽管我对此表示怀疑)。

不过,无论哪种方式,我都想知道是否有简单的 JavaScript 解决方案,或者想了解为什么没有。

(如果传入的数据是字符数据,那么自动处理 Unicode 会很棒。但它不是,它只是一个二进制数据流。)

谢谢。

最佳答案

字符串中没有原始字节这样的东西。 EcmaScript 规范将字符串定义为一系列 UTF-16 代码单元。这是任何解释器所遇到的最细粒度的表示。

在浏览器上没有编码库。如果您尝试将字节数组表示为字符串并想对其重新编码,则必须自己动手。

如果您的字符串恰好是有效的 ASCII,那么您可以使用 charCodeAt 方法获取代码单元的数值。

"\n".charCodeAt(0) === 10

关于javascript - 如何从 JavaScript 中的字符串中获取 ASCII 码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com