ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-23 21:33:38  阅读:316  来源: 互联网

标签:javascript unicode character ascii latin1


(在StackOverflow上已经提到了类似的问题,但不是这个.最近的可能是“javascript how to convert unicode string to ascii”,其中已经有了“这必须是一个复制品”.我已经阅读了一些类似的帖子,但是他们没有回答我的具体问题.我看过非常好的W3Schools网站,并且也用Google搜索过,但也没有找到答案.所以任何提示都会非常感激.)

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

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

我的问题是像字符0x2020 = 8224这样的字节值如0x86 = 134.这似乎是因为我的原始字节被解释为Latin-1(可能)’匕首’字符,然后被转换为等效的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,unicode,character,ascii,latin1
来源: https://codeday.me/bug/20190723/1517041.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有