sql 存储时"空格"转成问号,且这个空格不是真的空格


在通过Excel直接导入数据库的数据处理时,出现一个情况对我造成很大的困扰,一个特殊字符,看起来是个空格,但无法通过去除空格的方式去除。如果新建表,以查询方式插入就会变成问号。

这个字符存在很多数据的末尾,尝试很多方式,都没有成功去除。

“问题的根源,在于UTF-8这种编码里面,存在一个特殊的字符,其编码是“0xC2 0xA0”,转换成字符的时候,表现为一个空格”

经过实验,这个字符的 UNICODE 是 160

--我的表中这个字符通常在最后一个字符
SELECT UNICODE(RIGHT([], 1)) FROM [] WHERE [] LIKE '%'+NCHAR(160)+'%'

这样,解决方案也出来了:

-- 替换这个字符
UPDATE [] SET [] = REPLACE([],NCHAR(160),'') WHERE [] LIKE '%'+NCHAR(160)+'%'

 

参考:

sql 存储时空格转成问号问题 :https://www.cnblogs.com/lcawen/p/9473226.html

sql 空格变问号;sql 无法 去掉 空格 ;sql rtrim 失效;(转载): https://www.cnblogs.com/hao-1234-1234/p/13232281.html

SQL Server 中怎么查看一个字母的ascii编码或者Unicode编码 : https://www.cnblogs.com/dawenyang/p/5774625.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM