问题
今天同事发给我一个字符串是一串数字需要到数据库中进行匹配,可是在数据库中却无法查询到该字符串,而其确实是真真实实存在的(着实诡异)
例子如下:
可以复制有问题语句在sql中模拟复现
-- 有问题语句
SELECT * from api_seller_account where phone_number = '1xxxxxxxx77'
-- 正常语句
SELECT * from api_seller_account where phone_number = '1xxxxxxxx77'
解决
通过肉眼观察完全看不出问题所在,一度让人感到诧异
原因是因为,第一个语句的数字部分包含了零宽空格,虽然是空格,通过长度可以发现长了1位,但是通过肉眼却没有办法识别
解决办法是如果出现这样的问题可以通过如下网站对数据进行一下urlEncode()编码一下,就会发现多出的零宽空格
http://tool.chinaz.com/tools/urlencode.aspx
会发现多出数据如下: