在google的javascript控制台中,键入以下代码:
"i" == "i̇"
并意识到它会返回错误。但它们都具有相同的字符代码(105)。
为什么这是可能的?
经过注释后,我意识到第二个我有两个字符,但是第二个字符是根据以下代码生成的:
"İ".toLowerCase() // outputs i̇
也是
"İ".length // returns 1
javascript .toLowerCase()如何以及为什么可以计算字符长度?
发布于 2014-09-23 12:47:41
console.log("i".length, "i̇".length)
> 1 2
第二个字符串有一个额外的字符。结果是false
,因为这两个字符串不相同。
如果我们使用charCodeAt()
,我们可以看到这个额外的字符是Unciode符号775,称为http://www.fileformat.info/info/unicode/char/0307/index.htm。
01407
775
0x307
̇
上方的̇组合点
发布于 2014-09-23 12:48:02
右边的字符串有两个字符:一个i
和一个后面的“组合倾斜”。你只要仔细看一下你问题的标题就知道了!
https://stackoverflow.com/questions/25995451
复制相似问题