用 asp.net写了个插入语句,中文在插入数据库以后都变成了 问号(?)
MySqlobj mys = new MySqlobj(); 
string sqlstr = "insert into test (flag) VALUES ('中文')";
mys.ExecuteNonQuery(sqlstr);#region 执行插入或删除操作
        public int ExecuteNonQuery(string sqlString)
        {
            int ret = 0;
            com.CommandText = sqlString;
            com.CommandType = CommandType.Text;
            try
            {
                ret = com.ExecuteNonQuery();
            }
            catch (Exception ee)
            {
                string ss = ee.Message;
                ret = -1;
            }
            finally
            {
                com.Dispose();
            }            return ret;
        }
        #endregion mysql是 utf-8的asp.net在 web.conig里面设置了
   <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>

解决方案 »

  1.   

    1.确定数据库是utf-8及表也是utf-8格式
    2.Data Source={0};User ID={1};Password={2};Initial Catalog={3};character set=utf8;Pooling=true;Allow Zero Datetime=true
    数据库链接字符加上 character set=utf8;Pooling=true;Allow Zero Datetime=true
      

  2.   

    尽管你将MySQL数据库配置为utf8,尽管你的c#程序员运行在.net虚拟机上是unicode编码,但是许多MySQL驱动是基于ANSI Ascii编码的。尽量使用.net平台中与ado.net配套的驱动,不要随便用第三方驱动。
      

  3.   

    MYsql安装目录下有个my.ini文件,里面可以配置编码为utf-8。重启mysql服务应该就行了。
      

  4.   

    1.确定数据库是utf-8及表也是utf-8格式
    2.Data Source={0};User ID={1};Password={2};Initial Catalog={3};character set=utf8;Pooling=true;Allow Zero Datetime=true
    数据库链接字符加上 character set=utf8;Pooling=true;Allow Zero Datetime=true 
      

  5.   

    1.确定数据库是utf-8及表也是utf-8格式
    2.Data Source={0};User ID={1};Password={2};Initial Catalog={3};character set=utf8;Pooling=true;Allow Zero Datetime=true
    数据库链接字符加上 character set=utf8;Pooling=true;Allow Zero Datetime=true 
    ------------------------------
     还是 问号,不行。。
      

  6.   

    尽管你将MySQL数据库配置为utf8,尽管你的c#程序员运行在.net虚拟机上是unicode编码,但是许多MySQL驱动是基于ANSI Ascii编码的。尽量使用.net平台中与ado.net配套的驱动,不要随便用第三方驱动。 
    -------------------------------
    MySql.Data.dll 用的是这个,我一会试试 ado方式的
      

  7.   

    呃 不会啊 我项目用MYSQL就是这样弄 都好好的 你建个新的数据库试试
      

  8.   


    去my.ini改变字符编码utf-8
    或者直接执行MySql Server Instance Config Wizard向导,改变字符编码。这个是全局的。
      

  9.   

    去my.ini改变字符编码utf-8
    或者直接执行MySql Server Instance Config Wizard向导,改变字符编码。这个是全局的。 
    -------------------------------------
     mysql 数据库下,还有一个gb2312编码的库在运行,所有没法改变全局的
      

  10.   

    呃 不会啊 我项目用MYSQL就是这样弄 都好好的 你建个新的数据库试试 
    ---------------------------------
    你的是 .net 的连接的吗
      

  11.   

    mysql不熟,以前用过一个国外的免费服务器,数据库是sql server,插入中文时出现和楼主一样的问题,后来把sql语句改为:"insert into test (flag) VALUES (N'中文')" 这样就可以了。
      

  12.   

    问题解决了,我直接发到线上就可以,本地测试还是有问题,估计是配置环境有问题,就像 fengyarongaa,dalmeeme 提供的解决方案, 但我觉得 ysn1314 的链接字符串里面设置也是有用的,感谢各位的回答。