这个可能是你在安装环境的时候出现了问题,在安装mysql的时候,数据库默认的不是gb2312,是西欧字符,建议你重新安装数据库,或是使用wampsever集成安装环境,默认数据库是utf8的,只要你建的数据库整理为utf8
创新互联公司,为您提供重庆网站建设公司、重庆网站制作、网站营销推广、网站开发设计,对服务报废汽车回收等多个行业拥有丰富的网站建设及推广经验。创新互联公司网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!
网页文件也保存为utf8的
(不要bom头的那种)以后写php就很少出现问题啦。要是在php文件的最上面一行再加上这么一句代码,?php
header("Content-Type:text/html;
charset=utf-8");?,那出现问题的几率就更小了。
乱码一直是困扰PHP初学者的一个非常大的问题,现在总结下造成乱码的原因及解决方法:
一、HTML页面编码:meta http-equiv=content-type content=text/html; charset=utf-8 这里的编码要和数据库编码,及连接数据库编码;
二、文件在存储编码:比如文件inde.php,改变其存储编码为所需编码。只需用EditPlus等文本编辑软件 文件另存为,在编码中选择正确的编码(这点很多人都会忽略);
三、数据库编码:比如用的是phpmyadmin 选择数据库后,选择操作选项。下面有一个整理,这里面也要设置成统一的编码;
四、表编码:操作和第三点类似。这里就不重复了;
五、字段编码:在建表的建字段的时候,有个整理。如果内容有汉字,就一定要改成统一的编码;
六、连接数据库时mysql_select_db()后面,要加一句 mysql_query( set names utf8 );
七、 (刚遇到的)本地测试成功后的网站,传到网上去,会有乱码。可能会是在本地导出数据时没有选择正确的编码,所以才会在导入到web上后有乱码问题。
数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如页面申明的编码与数据库内部编码一致可以不设定连接编码。
事实上MYSQL配置文件my.ini中定义了2个默认编码,分别是[client]里的default-character-set和[mysqld]里的default-character-set来分别设定默认时候客户端连接和数据库内部所采用的编码。上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码。
转自:
打算切换某个网站的主机,没想到遇到Php和Mysql中文乱码的问题。
以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题。
只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET
NAMES
UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET
NAMES
GBK,代码如下:
$mysql_mylink
=
mysql_connect($mysql_host,
$mysql_user,
$mysql_pass);
mysql_query("SET
NAMES
'GBK'");
以上就是小编为大家带来的PHP读MYSQL中文乱码的快速解决方法的全部内容了,希望对大家有所帮助,多多支持脚本之家~