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

=============================================================================
  文章结束,如有问题请留言,感谢!٩( 'ω' )و 
=============================================================================
原文地址:https://www.cnblogs.com/miaolin/p/14955148.html