[英]C# with MySql and Unicode characters
我的問題是使用C#和MySQL數據庫通過發送參數來保存一些記錄。
雖然我已經將字符集設置為Utf-8並且我可以正確地看到unicode字符,但是我在嘗試插入unicode字符時遇到的問題是它只保存了一半的字符串。
真的很奇怪,這只發生在unicode字符串上,例如希臘語單詞,只有當我用參數發送查詢時才會發生這種情況。
IE瀏覽器。 如果我在C#中看到的查詢是:
string query = "INSERT INTO tablename VALUES (NULL, @somestring)";
我將@somestring參數值設置為“TESTING”。 這樣可以正常工作。
如果我嘗試將值設置為unicode字符串“ΤΕΣΤΙΝΓ”,則查詢執行正常且沒有錯誤,但只保存數據庫中一半的字符,即。 它只保存“ΤΕΣΤ”。
另一方面,如果我刪除參數並將查詢調整為:
string somestring = "ΤΕΣΤΙΝΓ";
string query = "INSERT INTO tablename VALUES (NULL,'" + somestring + "')";
查詢再次正常工作並將整個單詞/句子保存在數據庫中。
希望我能正確解釋,你能理解我的情況。
謝謝
在c#中聲明參數@somestring的時間長度太短。
UTF-8每個字符占用3個字節,因此您需要長度為21而不是7,例如以適應測試及其變體
說,我沒有用c#來調用MySQL(只有SQL Server),但我確定這是問題所在
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.