1.可能因为你的MySql安装时选择的是默认选项,它默认在字体是utf8的。你应该修改成gbk;   
  2.另外,你在用ADO连接mysql时,需要设定环境变量:   
            if   (ADOConn->Connected)   
            {   
                  ADOConn->Close();   
            }   
    
            ADOConn->ConnectionString   =   CSString;   
    
            ADOQuery->Active   =   false;   
    
            try   
            {   
                  ADOConn->Open();   
              
                  ADOConn->Execute("set   character_set_connection=gbk",cmdText);   
                  ADOConn->Execute("set   character_set_results=gbk",cmdText);   
                  ADOConn->Execute("set   character_set_client=gbk",cmdText);   
              
            }catch(...)   
            {   
                    return   -1;   
            }   
3.修改你的   MY.INI文件,注意路径改成你自己的。   
    
  [WinMySQLAdmin]   
        Server=D:/mysql/bin/mysqld-nt.exe   
          
  [mysqld]   
        basedir=D:/mysql   
        datadir=D:/mysql-data/data   
        default-character-set=gbk   
          
  [client]   
        default-character-set=gbk

解决方案 »

  1.   

    我安装的时候已经是gb2312,我用的是odbc连接的。
      

  2.   

    config修改下
        <!--  全球化
              此节设置应用程序的全球化设置。
        -->
        <globalization 
                requestEncoding="gb2312" 
                responseEncoding="gb2312" 
       />
      

  3.   

    如果是C#呢我的连接代码
            string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
                                 "SERVER=localhost;" +
                                 "DATABASE=seechn;" +
                                 "UID=root;" +
                                 "PASSWORD=zlk;" +
                                 "OPTION=3";        OdbcConnection MyConnection = new OdbcConnection(MyConString);
            string str = "select * from ClientInfo";
            OdbcCommand MyCommand = new OdbcCommand(str, MyConnection);
            MyConnection.Open();
            OdbcDataReader myreader = MyCommand.ExecuteReader();
            DataTable mytable = new DataTable();
            mytable.Load(myreader);
            GridView1.DataSource = mytable;
            GridView1.DataBind();
    那一句加在config 哪里,好像出错?
      

  4.   

    使用mysql.dll连接,我用着从没有这个问题,例子
    using System;
    using System.Collections.Generic;
    using System.Data;
    using MySql.Data.MySqlClient;
    using System.Configuration;
    using System.ComponentModel;[DataObject(true)]
    public static class MessagesDB
    {
        private static string GetConnectionString()
        {
            return ConfigurationManager.ConnectionStrings
            ["MySQLConnectionString"].ConnectionString;
        }    [DataObjectMethod(DataObjectMethodType.Select)]
        public static List GetMessages()
        {
            MySqlCommand cmd = new MySqlCommand("ShowAll", 
                               new MySqlConnection(GetConnectionString()));
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection.Open();
            MySqlDataReader dr = 
               cmd.ExecuteReader(CommandBehavior.CloseConnection);        List MessageItemlist = new List();
            while (dr.Read())
            {
                MessageItem MessageItem = new MessageItem();
                MessageItem.Entry_ID = Convert.ToInt32(dr["Entry_ID"]);
                MessageItem.Message = Convert.ToString(dr["Message"]);
                MessageItem.Name = Convert.ToString(dr["Name"]);
                MessageItem.Email = Convert.ToString(dr["Email"]);
                MessageItemlist.Add(MessageItem);
            }
            dr.Close();
            return MessageItemlist;
        }    [DataObjectMethod(DataObjectMethodType.Insert)]
        public static void InsertMessage(MessageItem MessageItem)
        {
            MySqlCommand cmd = new MySqlCommand("InsertMessage", 
                               new MySqlConnection(GetConnectionString()));
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new MySqlParameter("param1", MessageItem.Name));
            cmd.Parameters.Add(new MySqlParameter("param2", MessageItem.Email));
            cmd.Parameters.Add(new MySqlParameter("param3", MessageItem.Message));
            cmd.Connection.Open();
            cmd.ExecuteNonQuery();
            cmd.Connection.Close();
        }    [DataObjectMethod(DataObjectMethodType.Update)]
        public static int UpdateMessage(MessageItem MessageItem)
        {
            MySqlCommand cmd = new MySqlCommand("UpdateMessage", 
                               new MySqlConnection(GetConnectionString()));
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new MySqlParameter("paramkey", MessageItem.Entry_ID));
            cmd.Parameters.Add(new MySqlParameter("param1", MessageItem.Name));
            cmd.Parameters.Add(new MySqlParameter("param2", MessageItem.Email));
            cmd.Parameters.Add(new MySqlParameter("param3", MessageItem.Message));
            cmd.Connection.Open();
            int i = cmd.ExecuteNonQuery();
            cmd.Connection.Close();
            return i;
        }    [DataObjectMethod(DataObjectMethodType.Delete)]
        public static int DeleteMessage(MessageItem MessageItem)
        {
            MySqlCommand cmd = new MySqlCommand("DeleteMessage", 
                    new MySqlConnection(GetConnectionString()));
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new MySqlParameter("param1", MessageItem.Entry_ID));
            cmd.Connection.Open();
            int i = cmd.ExecuteNonQuery();
            cmd.Connection.Close();
            return i;
        }
     
    ==============================
    string readmssql = "select  * from cdb_posts where subject is not null and subject<>'' and ( subject like '%" + ArtistName + "%' or Message like '%" + ArtistName + "%')  order by tid desc limit 10  ";                       MySqlDataAdapter adapter = new MySqlDataAdapter(readmssql, myConnRead);                DataSet dsinfo = new DataSet();                adapter.Fill(dsinfo);                Repeater6.DataSource = dsinfo;                Repeater6.DataBind();
      

  5.   

    可以给个方案,比如用c#连接mysql 使用一些什么方式比较好呢。
    我现在的是odbc连接的。mysql 5.026+Navicat汉化过的。
      

  6.   

    插入中文的SQL语句执行之前执行"set names 'utf8'语句,有的'set names gb2312'不行,我是用php+mysql出现的乱码问题,这样解决的,网上是说的'set names gb2312',但是不行,还是utf8好了。