Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
463 views
in Technique[技术] by (71.8m points)

同样是字母“o”,为何识别不了

Bug图例
今天发现的最诡异的bug
上下两段的代码一模一样(这么缩进是为了方便同屏比对)
然而下一段的代码可以正常运行,上一段的无法使用
肉眼对比无果后,用Ctrl+F逐行比对,最后发现问题在第一个“onkeydown”的第一个字母“o”,如图,Ctrl+F搜索“on”时无法搜到图中所圈的地方。
转换这几个o的ASCII码,相同(经评论区大佬指正,这个是我的疏忽,当时复制错了)
使用编译器为vscode
复制到别的软件后再复制回来还是这样(发布问题后,我又从思否这里复制这段,再在编译器里尝试还是识别不了那个“o”)
关闭编译器重启还是这样
下附代码(“esc2”就是esc,当时为了区分两段代码加了数字)

<html><head><script>?  
document.οnkeydοwn=function(event){?  
var?e?=?event?||?window.event  
if(e?&&?e.keyCode==27){?  
alert("按?esc2");?  
}???  
};??  
</script></head><body></body></html>  
  
<html><head><script>  
document.onkeydown=function(event){  
var?e?=?event?||?window.event  
if(e?&&?e.keyCode==27){  
alert("按?esc2");  
}  
};  
</script></head><body></body></html>

(如图,我在这里Ctrl+F也是同样的结果,并且改完那个“o”代码就正常运行)
Bug.jpg


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

他只是长得像 o ,但是他实际并不是,通过检查这两个的字符 code 就可以看到,一个是 959(希腊字母) ,一个是 111(拉丁文字母)
图片.png

  • UNICODE 码表

图片.png
图片.png

  • ASCII 码表

图片.png


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...