【神奇bug】“金”、“⾦”不是同一个字

身为程序员,总能遇见那些神奇的bug。我前段时间遇到了 “中国黄金” 和 “中国黄⾦”,我咋看咋觉得是同一个词,但是程序就是判定不一致,十分郁闷,多方搜索,最后发现2个金居然不是一个字。真是个神奇的bug,故整理下相关情况,希望大家若能遇见此类问题,可以快速排查。

一、情况回顾

1.1 工具推荐

这里推荐2个在线网站,供大家参考:
在线文本对比
在线字符编码查询

1.2 排查路线

step1. 打开在线对比网站,逐字对比,发现问题出现在 “金” 字这里,此时可判定并非同一个字。
逐字对比

step2. 打开在线字符编码查询网站,分别查一下其编码

“金”码位值相关信息如下:
“金”码位值相关信息

“⾦”码位值相关信息
“⾦”码位值相关信息
由此可以看出2个字的编码完全不同,故程序判定不一致是正常现象。至此,本次问题已梳理清楚,统一字符即可。
经过后续查询,发现 “⾦” 实际为康熙词典中的部首。

step3. 啥原因导致的这个情况发生呢?
项目前期,部分文本以图片形式提供, 因不想手动打字,所以采用了OCR进行文本识别。
嗯……OCR的锅,不过话说回来,也不能全怪OCR,也许图片显示确实与后者更相近。
使用OCR录入数据的大家注意了哈!

二、举一反三、延伸扩展

由这件事开始,那么扩展想一下,还有那些从程序视角审视完全不一样,但是肉眼难以区分的情况呢?
我这里仅是抛砖引玉,欢迎大家在评论区补充哈。

2.1 压根不是一个字

这类字字形极为相似,OCR中也极容易误判,但是多数有细微差别。

常用字近似字
巿

2.2 全角半角不同

全角一个字符占用两个标准字符位置的状态,也就是字母、数字等与汉字占等宽位置。

半角一个字符占用一个标准字符的位置。

ASCII表中的字符,在默认情况下输入的字母数字和字符都是半角的。

举例如下:

半角全角
a
b
c

如果你还遇到过其他的情况,欢迎补充哈~~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值