当将西里尔值插入MySQL数据库值时,它们似乎是“?????”

时间:2012-08-08 18:08:57

标签: mysql ado.net character-encoding

我正在使用ado.net和MySQL db。当我将cyrillic值插入db时,它们被插入为'?'符号。我在db中尝试过各种编码,这没什么用。我尝试过utf-8,utf-16,cp-1251等等。 所以当我执行这段代码时

        MySql.Data.MySqlClient.MySqlConnection con = new MySql.Data.MySqlClient.MySqlConnection("server=localhost;User Id=root;database=voteme");
        MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand("INSERT INTO districts(DistrictName) VALUES('іавп')",con);
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

我收到'????'存储在我的数据库中。我该如何解决这个问题? 感谢。

编辑:我尝试在数据库中使用varchar和text字段类型:结果仍然相同。

2 个答案:

答案 0 :(得分:2)

  1. 请务必使用UTF8作为数据库归类。

  2. 打开连接后立即尝试:

      

    con.ConnectionString =“database = DATABASE; server = localhost; user id = USERNAME; pwd = PASSWORD; CharSet = utf8”;创建连接后。

答案 1 :(得分:0)

根据This Post您可能需要执行此操作:

ALTER TABLE tablename CHARACTER SET utf8 COLLATE utf8_general_ci;