重装了2遍,一次是选的utf8,一次是gb2312,结果utf8下在表里插入数据vachar只能进英文,中文报错。在gb2312下vachar插入中文成功,但是select出来是空的,什么都没有。
ini里也都看了,都是统一的。网上也查了很多东西,到此依然无解。烦请高手帮下忙。

解决方案 »

  1.   

    就是装好了mysql后选的gb2312 然后建库见表后,在表里插入数据成功了(INSERT INTO person (name,age) VALUES ('张三',25);),但是查询出来(select * from person;)张三那里是空的,什么都没有。 但是25却有显示,如果把“张三”改成英文就都正常。
      

  2.   

    select hex(name) from person;贴结果出来
      

  3.   


    http://dev.mysql.com/doc/refman/5.1/zh/installing.htmlMySQL 5.1参考手册 查看“第10章:字符集支持”“第12章:函数和操作符”
    http://imysql.cn/docs/MySQL_51_zh/mysql_51.html这是关于5.1版至5.1.2-alpha版MySQL数据库系统的参考手册。
      

  4.   

    set names gbk;
    select * from person;
      

  5.   

    mysql中运行下面命令,
    mysql> show variables like 'character_set_%';看看你的环境设置有没有问题。
      

  6.   

    show create table person;贴出来
      

  7.   

    或者试试
    mysql> set names binary;
    mysql> select * from person;
      

  8.   

    奇怪了。居然有这种事。mysql>select name from person into outfile 'c:\\result.txt';然后打开c:\\result.txt看看是不是“谢奎”
      

  9.   

    把你的my.cnf的内容去掉注释后贴出来。
      

  10.   

    我这里没找到my.cnf, 有个配置文件my.ini。不知道是不是你说的,下面去了注释的内容:
    [client]
    port=3306
    [mysql]
    default-character-set=gb2312
    [mysqld]
    port=3306
    datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/"
    default-character-set=gb2312
    default-storage-engine=INNODB
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    query_cache_size=15M
    table_cache=256
    tmp_table_size=18M
    max_connections=100
    thread_cache_size=8
    myisam_max_sort_file_size=100G
    myisam_sort_buffer_size=35M
    key_buffer_size=23M
    read_buffer_size=64K
    read_rnd_buffer_size=256K
    sort_buffer_size=256K
    innodb_additional_mem_pool_size=2M
    innodb_flush_log_at_trx_commit=1
    innodb_log_buffer_size=1M
    innodb_buffer_pool_size=42M
    innodb_log_file_size=10M
    innodb_thread_concurrency=8
      

  11.   

    如果是LINUX..看SHELL的编码.export LANG="gb2312"
    然后,进MYSQL后..执行.
    set names gb2312;试下
      

  12.   

    我是xp系统
    这个现象我在2台机器xp系统上装了几次都是这样。
      

  13.   

     真是匪夷所思了。我看你hex出来的值,是gbk(因为两个name的gbk和gb2312都是一样的编码,所以我这里的gbk也指gb2312)的,也就是说,insert的时候是成功了的。而你的编码全部都设置为了gbk,字段编码也是gbk。也就是说,传输过程里,并没有发生编码转换。结合insert的结果推论,你的终端编码是gbk的。那么,在这里select出来的,只要不保证不经过编码转换,到终端时候肯定是gbk。而只要设置了cs result为binary或者gbk,这个过程就应该是没问题的。问题到底出在哪里呢? 
      

  14.   

    我是做jsp的,从mysql提出来的中文数据在页面显示是对的。但是总是在mysql看不到,2台机器都是这样。装的时候也参照了标准和详细的装法
      

  15.   

    你试试
    set @@character_set_connection=utf8;
    然后select。如不行,试试
    set @@character_set_connection=gbk;
    set @@character_set_result=utf8;
    然后select如不行,试试
    set @@character_set_connection=utf8;
    set @@character_set_result=utf8;
    然后select如不行,快递你的硬盘给我
      

  16.   

    不能将就。这个问题不解决,意味着我在mysql编码方面的认识还有遗漏。再想想。可惜我手头没windows,不能自己测试。