星期四, 11月 08, 2018

[SQL] 存入看不見的控制字元

使用者跑來告知,為什麼已輸入的資料,竟然系統搜尋功能竟然都找不到

把資料拿來測試也覺得很神奇,同樣的條件,竟然一個找的到,一個找不到

[SQL] 存入看不見的控制字元-1

把兩個搜尋條件轉成 varbinary 來觀察,就發現問題點

[SQL] 存入看不見的控制字元-2

0x41 是 ASCII A 沒有問題,查 0x0341 是一個 unicdoe 符號,詳見該資料,但問題是該欄位資料型態是 char,又不是 nchar 或 nvarchar,對於編碼議題不熟,感覺這又不是 root casue,只能請使用者刪除後重新 key 資料,結案。

原想把上述測試結果記錄在 OneNote 時,TSQL 語法複製進去,兇手就現形啦,A 前面有一個隱藏字元
[SQL] 存入看不見的控制字元-3
把該隱藏字元單獨複製進 SSMS 內轉 varbinary 來觀察,是 End of Text 符號,Orz

[SQL] 存入看不見的控制字元-4

[SQL] 存入看不見的控制字元-5

沒有留言:

張貼留言