如何在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代码点?的主要内容,如果未能解决你的问题,请参考以下文章
编码(ACSII unicod UTF-8)QT输出中文乱码深入分析
javascript 如何在JavaScript中获取查询字符串值?