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