1. 程式人生 > 其它 >sql 儲存時"空格"轉成問號,且這個空格不是真的空格

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