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

标签 javascript unicode character-encoding non-ascii-characters

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

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

一些可能的字符是:

  • -

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

有什么方法可以从\uHHHH 样式的字符中获取代码吗? (HHHH为字符的十六进制编码)

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

随着codePointAt examples他们将我需要的代码变成了十进制代码,所以我需要将其反转。

最佳答案

Javascript 字符串有一个方法 codePointAt它为您提供了代表 Unicode 点值的整数。如果您希望将整数格式化为四位十六进制数字序列(如 Nikolay Spasov 的响应),则需要使用该数字的 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 中找到更多详细信息

关于javascript - 如何在 Javascript 中获取字符的 Unicode 代码点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48009201/

相关文章:

javascript - 所有 JSON 对象都是有效的 JavaScript 对象吗?

javascript - 数据表数据优先级/列优先级

javascript - 使用 XivelyJS 将 JS 值发送到 xively

javascript - 为什么要采用这种包装 javascript 的模式

java - Java 中的 StringObject.ReplaceAll 方法中自动删除“\”

java - 如何处理 UNICODE URL?

javascript - 我怎样才能正确地消除 firebase 云功能的执行

python - 修复 Python 中的乱码文件名?

php - 使用 Oracle、PHP 和 Oci8 处理 eacute 和其他特殊字符

html - 我还应该使用 html 实体吗?为什么?