一个由两个长的如此相像的字引起的问题
一个 两个 如此 引起 问题
2023-09-14 09:10:49 时间
之前测试同事打过一个bug:对于人员列表的关键字搜索功能,有个非常奇怪的问题,几乎所有的人员的中文名都能搜到对应的人,就只有某一个人员的名字有问题。这个名字叫“禇XXXX”,由于问题是必现的,觉着相对要好查的多。结果通过调试傻眼了,界面上显示文字是一样的,但是从内存里看,同一个字的Unicode编码竟然是不同的。百思不得其解,于是怀疑是不是服务器侧传过来的字符编码有问题,但是为什么除了这个名字外,其他的都是正常的呢?
这个问题太诡异了,于是找负责对应模块的同事过来一起看了一下。查看调试时,同事同样也感觉很迷惑。于是建议写个测试程序,将内存中编码一起打印到界面来看看是否一样。结果用测试展现测试结果时,经仔细辨别,发现两个字略有一点点不一样。于是用抓图工具抓取了图片,放大了图片后发现打印出来的两个字确实不一样。于是想到是不是两个字拼音都是“chu”,于是用Sogou输入法验证了一下,确实存在两个十分相近的字:禇、褚(后者比前者多一点)。原因找到了:人员列表中的chu是前者,而我们输入的关键字是后者,所以匹配不上。
相关的测试如下所示:
TCHAR achTest1[20] = { 0x7987, 0 };
TCHAR achTest2[20] = { 0x891a, 0 };
CString strTest;
strTest.Format( _T("7987: %s, 891a:%s"), achTest1, achTest2 );
AfxMessageBox( strTest );
相关文章
- TCP/IP高频考点之一个数据包的流浪日记
- AMD EPYC Genoa裸片曝光:12个CCD配备了96个内核和一个巨大的IOD
- 2022-10-03:给定一个正数n,比如6 表示数轴上有 0,1,2,3,4,5,6 <0 或者 >6 的位置认为无法到达 给定两个数字x和y,0<= x,y
- 其它网络下的容器加入mynet网络,实现一个容器两个ip地址
- php案例:创建一个数组cookie
- 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
- 使用VBA将图片从一个工作表移动到另一个工作表
- 一个机房当做两个用?混合部署打造新型绿色数据中心
- Adobe,一个传统软件公司成功“上云”的典型样本
- 2022-12-19:大的国家。如果一个国家满足下述两个条件之一,则认为该国是 大国 : 面积至少为 300 万平方公里(即,3000000 km2),或者 人
- 【python】如何用python写一个下拉选择框和页签?
- 两个字符转为一个字符
- SQLServer 错误 1205 事务(进程 ID %d)与另一个进程被死锁在 %.*ls 资源上,并且已被选作死锁牺牲品。 重新运行该事务。 故障 处理 修复 支持远程
- bootstrap-datepicker v1.6.2发布,一个日期表单组件详解编程语言
- Uber距离成为一个物流公司还有多远?
- 洗车到底是不是汽车后市场的入口,烧钱是不是还能烧出一个洗车版“滴滴”
- Linux查看命令路径:一个轻松简单的方法。(linux查看命令路径)
- 如何找到可靠的MySQL下载渠道(mysql下载那个一个)
- 波士顿动力的 Atlas 会走“梅花桩”了,一个建模算法就搞定
- 智能音箱背后的“声优”:一百多人里挑出一个声音 两个月录了20万字
- 科学家在银河系的一个旋臂上发现一处“断裂”
- 一个连接两个不同MYSQL数据库的PHP程序
- 如何让两个人共用一个桌面来同时远程控制
- 如何规划一个高容量的Apache服务器
- PHPparse_url一个好用的函数
- UCenter中的一个可逆加密函数authcode函数代码
- 对newfunctionName()定义一个函数的理解
- ruby实现的一个异步文件下载HttpServer实例
- 只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名