网上查了一些资料,好像在我这里没有作用。我现在mysql默认的是latin1我创建了一个数据库 utf-general-ci,表和字段也是这个utf-general-ci,通过mysql命令查询:
show variables like 'collation_%';
-----------------------------------
collation_connection->latin1_swedish_ci
collation_database  ->utf8_general_ci
collation_server    ->latin1_swedish_cishow variables like 'character_%';
-----------------------------------
character_set_client ->latin1
character_set_connection->latin1
character_set_database->utf8
character_set_filesystem ->binary
character_set_results ->latin1
character_set_sever ->latin1
character_set_system ->utf8.php 都是utf-8编码,我在网站上直接读写中文正常,都正常。但实际在mysql里存的是乱码,我现在mysql命令里查询也是乱码。现在可不可以把数据库在mysql里能正常存中文?我现在想直接mysql命令行里查询,也能显示中文,该怎么做?

解决方案 »

  1.   

    你在mysql控制台里输入set names gbk然后查询就是正常的了(windows)  如果是linux就set names utf-8
      

  2.   

    你试下将character_set_results设为utf8,终端输入:set character_set_results=utf8
    因为我对比了我的跟你show variables like 'character_%';,刚才也测试了下,将我的character_set_results改为latin1,就出现乱码。
      

  3.   

    你的mysql客户端要用gbk,这个在mysql的配置文件中可以改,服务器端为Utf-8,客户端用gbk
      

  4.   


    我试了mysql 目录下 my.ini 里我都改成了utf8,重启服务。
    依旧是乱码
      

  5.   

    估计是写入的时候不对吧。不要操心mysql的内部处理,在任何mysql连接中都先set names 客户端字符集。如果网站是utf8,那连接后第一件事先set names utf8。如果字符集是互相兼容的,表里面保存的数据会被正确查出来并转成你的字符集。
      

  6.   

    你插入数据库的时候就已经是乱了吧.修改数据库编码后重新导入数据。话说我以前也用过一段时间你说的编码好像跟utf-8还没出现啥异像
      

  7.   

    mysql默认的是latin1
    .php 都是utf-8编码,我在网站上直接读写中文正常,都正常。

    这是正常的,需要的也是这用的效果
    但实际在mysql里存的是乱码,我现在mysql命令里查询也是乱码。

    你是指在 mysql 控制台中查询吗?
    那至少需要你的控制台环境是支持 utf-8 编码的
    你在 gbk 环境中去看 utf-8 编码的内容,当然是乱码的
    现在可不可以把数据库在mysql里能正常存中文?
    我现在想直接mysql命令行里查询,也能显示中文,该怎么做?

    要想不乱码,就需要使用与操作环境一直的语言编码不要在数据库有内容的情况下修改 my.ini ,这样只会造成更大的混乱