我用VS2008做了一个winForm程序,数据库使用的是mysql,创建数据库时已把数据库的字符集设置为utf8,但在程序运行时在文本框中输入中文保存到数据库时变成了乱码,这该如何解决,请各位大虾帮帮忙?

解决方案 »

  1.   

    发送请求的时候 设置一下你的Request.ContentType属性,试一试
      

  2.   

    数据库中,文本框这个字段 前面加N'varchar
      

  3.   

    定义字段是 字符串类型定义为narchar  插入数据时 字符串前面要加N  例如 N'你好' 
      

  4.   


    不是请求的问题,只是一个简单地winform程序,没有涉及到请求
      

  5.   

    mysql数据库中没有narchar这种数据类型。而且我需要文本框中既可以输入中文也可以输入英文,如果输入英文的话,在插入数据时字符串前面加N应该不可以吧?
      

  6.   

            public string GB2312ToUTF8(string str)
            {
                try
                {
                    Encoding uft8 = Encoding.UTF8;
                    Encoding gb2312 = Encoding.GetEncoding("gb2312");
                    byte[] temp = gb2312.GetBytes(str);
                    byte[] temp1 = Encoding.Convert(gb2312, uft8, temp);
                    string result = uft8.GetString(temp1);
                    return result;
                }
                catch
                {
                    return null;
                }
            }
      

  7.   

    连接字符串中加入Unicode=True;Pooling=False;Character Set=auto;试试!
    有没有用到参数传递,可以试试在参数前加上“?”,而不是“@”
      

  8.   

    很久没用mysql了,以前也遇到过这种问题,mysqlutf-8好像不行,你用GBK吧,建立表之前好像还要设置两个字符集啥的,
      

  9.   

    数据库字符集:utf8
    数据库校对规则:utf8_general_ci
      

  10.   

    数据库如果设置为utf8,那么存取都要是utf8编码才行。
      

  11.   


     如何在存取时进行utf8编码
      

  12.   

    在连接字符串处加上字符设置。
    然后该mysql的字符编码与你的编译器的编码相同。