gpt4 book ai didi

javascript - charCodeAt 和 fromCharCode 不返回相同的字符

转载 作者:行者123 更新时间:2023-11-29 10:15:44 25 4
gpt4 key购买 nike

理论上,不管输入是什么,输出应该是不变的:

String.fromCharCode("a".charCodeAt(0));    //"a"

这是有道理的,因为我只是想获取字符的字符代码,然后将其转换回字符。

但是当我尝试使用这个 Angular 色时,它坏了:

//"🌀": 55356
String.fromCharCode("🌀".charCodeAt(0)); //"�" (65533)

enter image description here

(请注意,我实际上突出显示了该字符串并将其粘贴到下一行。由于某种原因它自己更改为 。)

为什么会发生这种情况,我该如何解决?

我注意到在 ES6 中有一个新方法,String.fromCodePoint() 但不是所有浏览器都支持它,除了 Firefox。

最佳答案

它不会改变。

> String.fromCharCode("🌀".charCodeAt(0)).charCodeAt(0)
55356

您可以通过以下方式检查所有内容:

for (var i = 0; i <= 65535; i++) {
if (String.fromCharCode(i).charCodeAt(0) !== i) {
console.log('error', i, String.fromCharCode(i));
}
}

为什么你看到 是因为 (65533) 是用于替换其值在 unicode 中未知或无法表示的字符。

它叫做 REPLACEMENT CHARACTER .

关于javascript - charCodeAt 和 fromCharCode 不返回相同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com