大家好,为什么用.net读出来的mysql中文数据都是乱码呢?用mysql的图形界面管理工具也是乱码。但是在dos下查询出来的数据是正常的,为什么?请各位大侠帮忙!

解决方案 »

  1.   

    字符集设置的原因,在你的。NET上执行一下SET NAMES GBK:http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    show variables like 'char%'; 
    贴结果
      

  3.   


    mysql>   show   variables   like   '%char% '; 
    +--------------------------+---------------------------------------------------------+ 
    |   Variable_name                         |   Value                                                                                                       | 
    +--------------------------+---------------------------------------------------------+ 
    |   character_set_client           |   gbk                                                                                                           | 
    |   character_set_connection   |   gbk                                                                                                           | 
    |   character_set_database       |   gbk                                                                                                      | 
    |   character_set_filesystem   |   binary                                                                                                     | 
    |   character_set_results         |   gbk                                                                                                           | 
    |   character_set_server           |   gbk                                                                                                      | 
    |   character_set_system           |   utf8                                                                                                         | 
    |   character_sets_dir               |   C:\Program   Files\MySQL\MySQL   Server   5.0\share\charsets\   | 
    +--------------------------+---------------------------------------------------------+ 
      

  4.   

    在你的。NET上执行一下SET NAMES GBK?
    在.net上如何做呢?
      

  5.   

    就象执行其它SQL语句一下,比如你是怎么执行 select * from xxx 的,就怎么执行一下 set names 'gbk'
      

  6.   

    就象执行其它SQL语句一下,比如你是怎么执行 select * from xxx 的,就怎么执行一下 set names 'gbk' 
      

  7.   

    或者在你的连接字符串上加上属性。MySqlConnection myConnection = new MySqlConnection("server=127.0.0.1;uid=root;" +
        "pwd=12345;database=test;Charset=gbk;");
     
      

  8.   

    直接在dos下运行一下这个语句不一样吗?
      

  9.   


    应该是你写入的时候,是以LATIN1写入的中文。先在DOS下检查一下。
      

  10.   

    我查了一下服务器上的,看到的就是latin1
      

  11.   

    我改成latin1后,在dos下又正常了,但是在asp.net读取出来后又是乱码,郁闷