问答

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

作者:admin 2021-08-20 我要评论

今天发现的最诡异的bug 上下两段的代码一模一样(这么缩进是为了方便同屏比对) 然而下一段的代码可以正常运行,上一段的无法使用 肉眼对比无果后,用Ctrl+F逐行...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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

###

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

  • UNICODE 码表

图片.png
图片.png

  • ASCII 码表

图片.png

###

你那第一个是希腊字母 ο (HTML 转义记作 &omicron;),不是英文字母 o

另外你咋转的 ASCII?ASCII 一共就 128 个字符,其余全都 \uXXXX 转义的。

要比也该是看 Unicode 编码,希腊字母 ο Unicode 是 &#959;,英文字母 o Unicode 是 &#111;

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 使用箭头函数return数据不能实现

    使用箭头函数return数据不能实现

  • 个人小程序号能接入小程序3D地图吗?

    个人小程序号能接入小程序3D地图吗?

  • vue 移动端项目中,使用了better-scrol

    vue 移动端项目中,使用了better-scrol

  • css如何做出区域平均划分为四列

    css如何做出区域平均划分为四列

腾讯云代理商
海外云服务器