数据库端的字符集全是utf8,web.config也设置了  <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN" />
在mysql administrator中插入的中文能够正常显示,但在页面中插入的汉字显示成??

解决方案 »

  1.   

    好象MYSQL中MY.INI的设置是:GBK,而我们一般使用GB2312.
      

  2.   

    /* 在使用MySql时会遇到中文乱码的问题就此写下面两个函数
       * 在写入数据库和从数据库读出时将编码改变
       * author:alice
       * date   :2006/1/25
      */
      //写入数据库时进行转换
      public string GB2312_ISO8859(string write)
      {
       //声明字符集
       System.Text.Encoding iso8859, gb2312;
       //iso8859
       iso8859 = System.Text.Encoding.GetEncoding("iso8859-1");
       //国标2312
       gb2312 = System.Text.Encoding.GetEncoding("gb2312");
       byte[] gb;
       gb = gb2312.GetBytes(write);
       //返回转换后的字符
       return iso8859.GetString(gb);
      }
      
      //读出时进行转换
      public string ISO8859_GB2312(string read)
      {
       //声明字符集
       System.Text.Encoding iso8859,gb2312;
       //iso8859
       iso8859    = System.Text.Encoding.GetEncoding("iso8859-1");
       //国标2312
       gb2312 = System.Text.Encoding.GetEncoding("gb2312");
       byte[] iso;
       iso = iso8859.GetBytes(read);
       //返回转换后的字符
       return gb2312.GetString(iso);
      } 
    以上是C#代码,只能进行单个转换,如果需要批量转换的话,则可以将dataset里面的数据先读入xml文件,然后在页面显示。//批量数据转换
    //其实就是将dataset的内容读出到xml文件,然后再输出
    public DataSet ISO8859_GB2312(DataSet ds)
    {
    string xml;
    xml = ds.GetXml();
    ds.Clear();
    //声明字符集
    System.Text.Encoding iso8859,gb2312;
    //iso8859
    iso8859    = System.Text.Encoding.GetEncoding("iso8859-1");
    //国标2312
    gb2312 = System.Text.Encoding.GetEncoding("gb2312");
    byte[] bt;
    bt = iso8859.GetBytes(xml);
    xml = gb2312.GetString(bt);
    ds.ReadXml(new System.IO.StringReader(xml));
    return ds;
    }
    如何还有问题,可以看我的blog
    http://blog.csdn.net/xiangeialice