我在保存數據庫中的非ASCII字符時遇到了問題。現在我知道這裏有很多關於類似問題的問題,但是我已經完成了我的研究並且被卡住了。我也知道數據庫中存在COLLATE設置的問題,但我的觀點是正確的。我所擁有的是一個非常奇怪的問題。使用LINQ-to-Entities時出現非ASCII字符問題
我有一個自動運行的功能,它使用LINQ將檢索到的字保存到數據庫中。其中一些單詞包含非ASCII字符,如(ċ,ħ,ġ和ż)。當我看到我的數據庫時,發現我遇到了這個問題,並且發現有些字詞(如上面列出的字符)更改爲ASCII字母。我發現這很奇怪,因爲我已經在一個項目中工作,在那裏我通過一個Web表單保存非ASCII字符,而沒有任何問題。唯一的區別在於這些詞不是通過網絡表單輸入的。
所以總的來說,奇怪的是:當非ASCII字符從網絡傳遞並保存在數據庫中(使用LINQ)時,這些字符被保存。將相同的字符串和參數寫入SQL語句並運行非ASCII字符時不保存。我不明白髮生了什麼事。我試過使用:
System.Data.Objects.EntityFunctions.AsNonUnicode([word])
但它沒有工作。我也在SQL語句中測試了N前綴,並且確實有效。
UPDATE tblWords
SET Word = N'żabbar'
WHERE ID = 19061
因爲我在我的應用程序是我使用LINQ到實體,我想知道是否有反正可以使用LINQ可以插入一個N字頭,導致這就是我設法挽救非唯一的出路-ASCII字符。
在此先感謝!
編輯:好吧,顯然我的意思是非ASCII沒有非Unicode字符,遺憾的混亂