php+mysql的utf-8中文乱码问题的解决方法
问题汇总:
1mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码
2MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码
3MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码
4用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码
5如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码
6PHP页面字符集不正确
7PHP连接MYSQL数据库语句指定的编码不正确
使用mysql+php产生乱码的原因都了解得很清楚了,那么解决就不困难了
针对不同问题的解决方法:
1mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码
修改数据库编码,如果是数据库编码不正确,可以在phpmyadmin 执行如下命令:
Alter DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将test数据库的编码设为utf8
2MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码
修改表的编码:
Alter TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将一个表category的编码改为utf8
3MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码
修改字段的编码:
Alter TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将test表中 dd的字段编码改为utf8
4用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码
如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可
5如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码
这种情况也是修改页面charset即可
6PHP页面字符集不正确
为了避免PHP页面乱码的发生,PHP页面开始第一句
header("content-type:text/html; charset=utf-8");
//强行指定页面的编码,以避免乱码
7PHP连接MYSQL数据库语句指定的编码不正确
在连接数据库的语句中
mysql_connect('localhost','user','password');
mysql_select_db('my_db');
mysql_query("set names 'utf8'"); //select 数据库之后加多这一句
按以下步骤检查处理。
(1)HTML编码指定是否正确?检查<head>段中是否包含以下
<meta
>
<php
echo '<p><img src="centergoodsphpaction=show&id='$val['id']'&t='time()'" width="150"></p>';
header('content-type:'$b['type']);
echo $b['pic'];
以上代码在header发送之前有个echo输出了一串字符串有些header信息要求先发送,之前不能有其他输出你将header这句放在echo输出之前
另外,在上面一段代码中,你将上传的数据直接保存到数据库中,然后在下面取出来直接发送给浏览器,这是什么逻辑你发送出去的将是的原始数据,浏览器就是按原样显示,一堆乱码如果你要让它知道这是一张,你也得使用header来标识这是类型的文件当然最后是一个单独的php文件处理并输出格式的数据供<img>调用
将浏览器中的编码改成utf-8,数据库中也是。在php页面首行加上header("Content-type:
text/html;
charset=utf-8");,必须首行,前面不能有输出。
还有,在查询数据库时加上:mysql_query(set
names
utf-8);
数据载入的时候是乱码还是正常,是从别人机器上导出数据自己恢复的吗?
查看下数据库的字符集编码,show
vaiables
like
'%char%'
查看下字符集
使用下latin1
因为他是默认的
,不行就把数据库删了重新建立在导入数据
以上就是关于PHP显示MySQL数据乱码,字符集设置都是UTF8,数据库也是UTF8,一直找不到问题在哪里,代码见详细,求大神全部的内容,包括:PHP显示MySQL数据乱码,字符集设置都是UTF8,数据库也是UTF8,一直找不到问题在哪里,代码见详细,求大神、有关PHP 数据库乱码的问题、php从数据库读取图片是乱码该怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)