乱码其实也就是字符串才会出现的一种现象,原因是编码方式的不统一,其实根本原因是客户端方面的问题,这里的客户端指的就是我们的php程序。在MySQL Command Line Client中使用命令show variables like ‘character_set%’ 然后会有一个character_set_client和character_set_result以及character_set_connection这三个参数,character_set_client是客户端的编码,character_set_result是返回结果的编码,MySQL Command Line Client其实就是个客户端,它本身是有编码的,如下图所示:
从图中我们可以看出这个客户端其实是gbk编码的。我们可以一个个的设置这三个参数的编码,当然也可以用set names gbk;默认是utf8的。
我们的页面本身存储的时候也是有一个编码,可以用editplus右键另存为的时候看到它的编码格式,其中ANSI编码其实就是GBK。
然后我们的页面在输出内容的时候也会有一个页面的设置,在头部可以设置一个<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
然后我们的程序其实就是客户端,这个时候我们就需要设置客户端的编码了,那么就需要用到这句 mysql_query(“set names gbk”);
总结就是只要页面编码、页面存储时候的编码、数据输出的编码要统一,只要数据库里面的数据是正常的,那么从数据库里输出的数据都是正常的了。