gpt4 book ai didi

javascript - charCodeAt 未按预期运行

转载 作者:行者123 更新时间:2023-11-30 08:03:30 24 4
gpt4 key购买 nike

这怎么可能:

var string1 = "🌀", string2 = "🌀🌂";

//comparing the charCode
console.log(string1.charCodeAt(0) === string2.charCodeAt(0)); //true

//comparing the character
console.log(string1 === string2.substring(0,1)); //false

//This is giving me a headache.

<子> http://jsfiddle.net/DerekL/B9Xdk/

如果两个字符串中的字符代码相同,则通过比较字符本身应该返回true。当我输入 aab 时,这是真的。但是当我放入这些字符串时,它就断了。

有人说可能是编码导致了问题。但由于当字符串文字中只有一个字符时它工作得很好,我认为编码与它无关。

(这个问题解决了我之前问题中的核心问题。不用担心,我已经删除了它们。)

最佳答案

在 JavaScript 中,字符串被视为字符而不是字节,但前提是它们可以用 16 位代码点表示。

大多数字符不会造成问题,但在这种情况下,它们不“适合”,因此就 JavaScript 而言,它们占用 2 个字符。

在这种情况下你需要做:

string2.substring(0, 2) // "🌀"

有关 Unicode 怪癖的更多信息,请参阅 UTF-8 Everywhere .

关于javascript - charCodeAt 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22345614/

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