【发布时间】:2012-02-15 18:24:17
【问题描述】:
我的问题是使用C#和MySQL数据库通过发送参数保存一些记录时。
虽然我已经将字符集设置为 Utf-8 并且我可以正确看到 unicode 字符,但我在尝试插入 unicode 字符时遇到的问题是它只保存了一半的字符串。
真正奇怪的是,这仅发生在 unicode 字符串(如希腊词)中,并且仅在我发送带参数的查询时发生。
即。如果我在 C# 中看到的查询是:
string query = "INSERT INTO tablename VALUES (NULL, @somestring)";
我将@somestring 参数值设置为“TESTING”。这样就可以了。
如果我尝试将值设置为 unicode 字符串“ΤΕΣΤΙΝΓ”,则查询执行良好,没有错误,但仅保存数据库中的一半字符,即。它只保存“ΤΕΣΤ”。
另一方面,如果我删除参数并将查询调整为:
string somestring = "ΤΕΣΤΙΝΓ";
string query = "INSERT INTO tablename VALUES (NULL,'" + somestring + "')";
查询再次正常工作,并将整个单词/句子保存在数据库中。
希望我解释正确,你能理解我的情况。
谢谢
【问题讨论】:
-
欢迎来到 StackOverflow。请查看常见问题解答:meta.stackexchange.com/q/7237/27535
标签: c# .net mysql utf-8 mysql-parameter