为什么我用php打开文件用echo 输出文件的内容出现乱码?

最近学习php遇到乱码问题头疼,还有连接数据库的时候,表单里的数据是中文就不能插入到数据库中,或者就是乱码。谁能帮帮忙,谢谢!

1.查询之前加这条语句可以解决乱码问题:
mysql_query("set names 'gb2312'");

2.导致编码不正确的几种原因:
mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.
MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码.
如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.
PHP页面字符集不正确.
PHP连接MYSQL数据库语句指定的编码不正确.
3.解决方法:
mysql+php产生乱码的解决办法:

如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题

修改数据库编码,如果是数据库编码不正确,可以在phpmyadmin 执行如下命令:

ALTER DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

以上命令就是将test数据库的编码设为utf8.

修改表的编码:
ALTER TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

以上命令就是将一个表category的编码改为utf8.

参考资料:http://hi.baidu.com/20080512228/blog/item/32ee9d8b14542914c9fc7a2f.html

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-08
最好网页编码使用UTF-8。
如果不是UTF-8,连接数据库时使用
mysql_query("set names gb2312")设置客户端字符集。
第2个回答  2009-05-08
编码问题嘛,字符编码使用为GB2312就OK了
相似回答