使用set names 字符集
Character_set_client
character_set_result
character_set_connection 这三项在cmd黑窗口中设置为set names gbk;时 那数据文件层与系统管理层是utf8 在cmd窗口查询的时候 数据从文件中取出经过数据管理层 然后到达character_set_result这里 在这一过程中应该会有编码转换问题不 要从 utf8转成gbk不?那如果这一转换应该会有乱码才对
utf8转成gbk

解决方案 »

  1.   

    需要,而且你的文件编码也应该是gbk
      

  2.   

    如果你什么cmd直接连接mysql client操作的话,不需要,mysql自动转换的如果你实在cmd下执行php的话,输出时根据php文件编码决定的。
      

  3.   

    从数据库到php是一次IO,从php echo到cmd也是一次IO,要注意两次IO前后的编码变化你说cmd,应该是windows吧,windows的cmd默认是跟随系统编码的,如简体中文的windows其cmd默认是cp936(相当于gbk)编码,此编码可以通过注册表做永久改变,或使用"chcp xxx"命令临时改变,其中xxx是编码号,936相当于gbk,65001相当于utf-8在cmd最开始输入chcp 65001回车,cmd的窗口就变成相当于utf-8编码输出了注:cpxxx是微软定的编码,和对应的通用编码有很轻微的不同,一般使用时不涉及这些差异的内容,所以上面所说都是“相当于”
      

  4.   

    只要你的数据字段的连接校对是中文系列的(gbk、big5、utf8、ucs-2、utf-16....)
    那么你在使用时只需 set names 字符集,以后就可按你需要的字符集进行操作
    编码转换的工作由 mysql 替你完成