每次都要发送个查询: set names utf8,消耗也挺大的,能否配置my.cnf控制字符集?我在 [mysqld] 章节设置了 default-character-set=utf8 ,但不起作用

解决方案 »

  1.   

      你可以 在连接数据库的时候设置一下 set names 'utf8'  不就可以了吗?
      

  2.   

    如果不想用就把几个编码都设成一样的,
    set name utf8是指让你的客端以UTF8的方式向MYSQL服务器提交数据
    而my.cnf是mysqld的配置,你设成utf8只能说明你的mysqld以utf8的方式保存数据,
    但如果你的脚本还是以其它编码向服务器端提交数据的话,那到了服务器端还是会乱码的,
    最好的解决办法是:
    php文件,mysql客户端,mysql服务器端,前端页面,全部统一用utf8应该不会出现乱码问题。
      

  3.   

    已解决
    在my.cnf中加入:sql_mode=''
    character-set-server=utf8
    collation-server=utf8_general_ci
    init_connect="SET NAMES 'utf8'"并且连接数据库的用户只能是USER级的用户,这个设置才有效