簡體   English   中英

帶有MySql和Unicode字符的C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM