javascript - 为什么 '\u{1D11E}' .charAt(0) 不等于 '\u{1D11E}' ?

标签 javascript unicode utf

当我尝试在控制台中计算此表达式时,结果为 false,为什么?

console.log('\u{1D11E}'.charAt(0) === '\u{1D11E}')

最佳答案

一个简单的 console.log 就能告诉你问题所在

console.log('\u{1D11E}'.charAt(0))
console.log('\u{1D11E}')
console.log('\u{1D11E}'.charAt(0) === '\u{1D11E}')

如您所见,它们不会给出相同的结果,那是因为 charAt 只处理 UTF-16 code units .请参阅同一来源的代码片段,了解如何处理 UTF-16 字符(也在其他平面上,因此代码点 > 65535)。

关于javascript - 为什么 '\u{1D11E}' .charAt(0) 不等于 '\u{1D11E}' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63028648/

相关文章:

go - 编码 utf 8 个字符的问题 - šđžčć

macos - OSX Emacs : unbind just the right alt?

javascript - 主干仅验证保存中的单个属性

javascript - 在 JS 执行之前应用 CSS 字体

regex - 用grep检测俄语字符

python - urlopen 似乎不起作用,具体取决于输入文本的生成方式

java - Scanner.nextInt() NoSuchElementException

javascript - Puppeteer,阻止 window.location 并返回页面内容?

javascript - Qt WebView控件如何查看错误?

javascript - 使用非字母数字字符时如何使填充空格结果具有相似的长度?