为什么我用php打开文件用echo 输出文件的内容出现乱码?
最近学习php遇到乱码问题头疼,还有连接数据库的时候,表单里的数据是中文就不能插入到数据库中,或者就是乱码。谁能帮帮忙,谢谢!...
最近学习php遇到乱码问题头疼,还有连接数据库的时候,表单里的数据是中文就不能插入到数据库中,或者就是乱码。谁能帮帮忙,谢谢!
展开
3个回答
展开全部
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.
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
展开全部
最好网页编码使用UTF-8。
如果不是UTF-8,连接数据库时使用
mysql_query("set names gb2312")设置客户端字符集。
如果不是UTF-8,连接数据库时使用
mysql_query("set names gb2312")设置客户端字符集。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编码问题嘛,字符编码使用为GB2312就OK了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询