最近做專案把人員相關資料從AD轉換到SQL中發現部分人員的中文姓名變成了"?",想說奇怪.net不是都已經是unicode的編碼方式,應該不太會遇到這狀況才對;確認了一下來源,是"綉"這個字,這個字也不特殊啊,是什麼道理會塞到資料庫就變成"?"呢..
最近做專案把人員相關資料從AD轉換到SQL中發現部分人員的中文姓名變成了"?",想說奇怪.net不是都已經是unicode的編碼方式,應該不太會遇到這狀況才對;確認了一下來源,是"綉"這個字,這個字也不特殊啊,是什麼道理會塞到資料庫就變成"?"呢..
好吧,程式下個中斷來瞧瞧吧;嘿嘿,中斷之後在程式碼中出現的字也是正常的,我勒..是怎樣,後來有其他東西要趕,就先放著..就這麼過了兩天...兩天後突然間一到耀眼的金色光芒閃過眼前,印象中插入中文字要加個"N"字喔...對了一定是這個,於是乎在Inser Into裡面加了"N",嘿嘿,搞定收工;可得好好記起來才行。
所以在插入中文字的時候記得要確認欄位類型是n開頭的欄位,像是nChar或是nVarChar,而在Insert的時候要加上"N"這個關鍵字,可以用下面的方式來比較看看
Update myTable Set ChName='王綉綉' Where ID=1
Update myTable Set ChName=N'王綉綉' Where ID=1
相關參考