奇怪的c2a0空格0
昨天同事反馈,有用户通过手机号和姓名查不到自己的报告,我从数据库查询发现用户的手机号都多了一个空格,于是便用起了mysql最简单的trim函数,想着把空格替换掉,竟然没有效果,什么鬼?
SELECT LENGTH('17526716815 '), LENGTH(RTRIM('17526716815 '))
长度是13,空格也就1个字符呀,11位手机号+空格也就12个字符,哪来的另外一个字符?
于是先手动构造替换的sql,先把问题解决了,后面通过用notepad++查看字符串16进制,才发现问题,原来那个空格,是由两个字符c2a0组成的,其中的od0a是回车换行符。
网上查了下,原来 在UTF-8编码里存在⼀个特殊的字符,其编码是“0xC2 0xA0”,转换成字符的时候表现为⼀个半⾓空格,跟⼀般的半⾓空格(ASCII0x20)不同的是它的宽度不...