我在本地调试正常的,部署到虚拟主机时,取中文数据正常,但是保存中文时就是???。直接在数据库里保存中文也没有问题。
我在web.config文件里已经设置<globalization requestEncoding="utf-8" responseEncoding="utf-8" />,连接串也加了charset=utf8;数据库我看了下,除了character_Set_server是latin1外,其他字符集都设置为utf8。不知道是不是这个原因,或是其他原因。多谢高手帮忙 

解决方案 »

  1.   

     现在虚拟主机的技术人员就是拖,搞了一天了也没解决。一开始character_set_database也是latin1,还死不承认,说服务器没问题,已经全部设为utf8了。后来我查出来才闭嘴的。现在character_Set_server是latin1,还没改过来,不知道是不是这个原因。这虚拟主机商服务态度太差
      

  2.   

    自己把mysql配置要到 自己陪就是了 100%配置问题 以前也遇见过 需要改mysql一个配置
      

  3.   

    表是没有问题的,包括字段,都设置utf8了。读取没问题,就是保存出问题。
      

  4.   

    杯具了,没人能帮忙吗?管理员能帮我转到mysql区吗?
      

  5.   

    楼主,我之前遇到过这样的问题,字符集这东西我还不是很清楚,不过通过谷哥还是解决了
    代码贴出来你自己瞅瞅吧,小白一个,希望对你有所帮助
    ----------------------------------------------------------------------------------------------------------------------------
    MySQLConnection conn = new MySQLConnection(new MySQLConnectionString("10.20.11.33", "temp", "root", "root", 3306).AsString);
                conn.Open();
                MySQLCommand comm = new MySQLCommand("set   charset   gbk ", conn);
                comm.ExecuteNonQuery();
                comm.Dispose();
                .........................
    ---------------------------------------------------------------------------------------------------------------------------
    下面就是你执行插入操作要执行的sql代码了
      

  6.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  7.   

    谢谢,应该查到原因了。
    使用show procedure status看到
     对于输入参数varchar采用默认字符集的存储过程database_collation使用的是latin1-swi..-ci.
    但是对于输入参数varchar明确指定 character set utf8的,database_collation是utf8-general-ci。
    这应该是默认继承server的编码。
    现在有没有办法把所有存储过程的database_collation设置为utf8-general-ci?
    我不能修改每一个存储过程的输入参数啊
      

  8.   

    因为虚拟主机的server编码是latin1,不给修改的
      

  9.   

    不需要改主机的 charset. 直接在你的连接中,或者存储过程中说明即可。