【发布时间】:2013-03-28 06:42:03
【问题描述】:
在我的 asp.net 应用程序中,我有一些 unicode 格式的数据(印地语-印度语)。现在我想将此 unicode 文本插入 mysql(5.1) 数据库。当我运行以下 C# 代码时,存储的文本在我的数据库中,就像 ?????? 而不是我的 unicode 文本。但是当我通过 phpmyadmin 执行查询时,它被正确存储了。
我已经将 db、table 和特定字段排序规则设置为 utf8_general_ci。并将 db 字符集设置为 utf8。
string mysql_query2 = "SET NAMES 'utf8'";
da.UpdateCommand = new MySqlCommand(mysql_query2, mysqlCon);
da.UpdateCommand.ExecuteNonQuery();
string para_text="हिन्दी भारत";
string para_outerxml="की राष्ट्रभाषा";
string status="जयपुर। हास्य-व्यंग्य";
string sql = "Insert into sand_box (para_text,para_outerxml,status) values('" + para_text + "','" + para_outerxml + "','" + status+")";
da.InsertCommand = new MySqlCommand(sql, mysqlCon);
da.InsertCommand.ExecuteNonQuery();
另外,请参考下面我的图片。(表结构)
【问题讨论】:
-
我不知道在这种情况下它是否会有所帮助,但您应该转而使用参数化查询,而不是直接在 SQL 中包含您的值……尤其是要避免 SQL 注入攻击。这只是可能在 Unicode 方面也有帮助,尽管我对此表示怀疑。
标签: c# asp.net mysql c#-4.0 phpmyadmin