mysql>show variables like 'char%';
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8                           |
| character_set_connection | utf8                           |
| character_set_database   | utf8                           |
| character_set_filesystem | binary                         |
| character_set_results    | utf8                           |
| character_set_server     | utf8                           |
| character_set_system     | utf8                           |
| character_sets_dir       | c:\program files\MySQL5.5\share
\charsets\ |
+--------------------------+--------------------------------+
8 rows in set (0.00 smysql 版本号是5.5.27 community server;从mysql的安装开始,所有的character set 均设置为UTF8。英文和数字的表示一切正常。但是在网页中的中文就显示为连续的“??????”。在mysql 的命令行窗口,插入中文数据时,显示“ invalid utf8 character string”。
从PHPMYADMIN 中可以插入和查询,都没有问题。考虑了很长时间,反复看了文档,也没能找见是什么地方的原因。盼望大侠赐教!

解决方案 »

  1.   

    mysql 命令行窗口中,查询数据表时,中文显示为乱码。
      

  2.   

    网上的很多解决办法都是这样说,set names ‘gbk’;是什么意思呢?这样做的原因是什么呢?utf8编码对中文不是也可以吗?
    我想具体学习一下其中的机制,能否详细讲一下。非常感谢!
      

  3.   

    设置编码
    set names 'GBK';
      

  4.   

    我也遇到过一样的问题,在命令行显示的时候就输入 set names gbk;因为windows命令行里就识别gbk 不识别utf8 在网页显示中乱码可以这样解决:在数据库链接文件(也就是你的php文件中的第一行类似<?php require_once('Connections/sql.php'); ?>所指向的那个文件,这个例子就是sql.php),把这个文件打开 在最后?>之前加一句:mysql_query("set names utf8;"); 意思貌似还是重复设置了utf8 但我试了几次就是这儿决定的,你也尝试尝试吧
      

  5.   

    多谢 zxmwxhn08。终于正常显示了。之前已经搜索了很多次,都是说set names gbk;但一直没弄明白为什么,谢谢你的耐心讲解。