如何在Javascript中获取字符的Unicode代码点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Javascript中获取字符的Unicode代码点?相关的知识,希望对你有一定的参考价值。

我正在使用条形码扫描仪读取我网站上的条形码(该网站是在OpenUI5中制作的)。

扫描仪的工作方式类似于键入其所读取字符的键盘。在键入的结尾和开头,它使用特殊字符。这些字符对于每种类型的扫描仪都是不同的。

一些可能的角色是:

在我的代码中,我使用if (oModelScanner.oData.scanning && oEvent.key == "u2584")检查扫描仪的输入是否为。

有没有办法从 uHHHH样式中获取该字符的代码? (HHHH是角色的十六进制代码)

我尝试了charCodeAt,但这会返回十进制代码。

使用codePointAt examples,他们将我需要的代码变成十进制代码,所以我需要反过来。

答案

javascript字符串有一个方法codePointAt,它为您提供基数为10的给定符号的整数值,如果您希望将整数格式化为四个十六进制数字序列,则需要转换基数为16(十六进制)的整数(如尼古拉斯帕索夫的回应)。

var hex = "▄".codePointAt(0).toString(16);
var result = "\u" + "0000".substring(0, 4 - hex.length) + hex;

但是,如果关键代码点整数与预期代码点匹配,则可能更容易直接检查

oEvent.key.codePointAt(0) === '▄'.codePointAt(0);

请注意,“符号相等”实际上可能更棘手:某些符号由代理对定义(您可以将其视为定义为四个十六进制数字序列的两半的组合)。

出于这个原因,我建议使用专门的库。

你会在非常relevant article by Mathias Bynens找到更多的细节

另一答案
var hex = "▄".charCodeAt(0).toString(16);
var result = "\u" + "0000".substring(0, 4 - hex.length) + hex;

以上是关于如何在Javascript中获取字符的Unicode代码点?的主要内容,如果未能解决你的问题,请参考以下文章

如何在JavaScript中获取字符的ASCII值[重复]

编码(ACSII unicod UTF-8)QT输出中文乱码深入分析

javascript 如何在JavaScript中获取查询字符串值?

如何在 JavaScript 中获取 innerHTML(总字符)的长度?

如何在 JavaScript 中获取查询字符串值?

如何在 JavaScript 中获取查询字符串值?