我的问题是使用 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 + "')";
查询再次正常工作并将整个单词/句子保存在数据库中。
希望我解释正确,你能理解我的情况。
谢谢