首页 / PHP / php中文乱码问题分析及解决办法
php中文乱码问题分析及解决办法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php中文乱码问题分析及解决办法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1984字,纯文字阅读大概需要3分钟。
内容图文
中文乱码问题产生的原因,主要就是字符编码设置问题;
首先,mysql数据库安装的时候字符编码要选择正确,最好选择utf-8比较保险。如果安装时没有设置正确,找到mysql的安装目录,修改my.conf配置文件中的字符设置,打开文件,应该一个是在mysqll下面,一个是在server下面的。
如果是php页面的中文乱码,也就是非数据库查询出来的数据,HTML页面静态的部分出现乱码,应该使用 header("content-type:text/html; charset=utf8") 来设定页面编码。
可能用到的命令:
1>数据库导出的命令:mysql -u root -p 数据库名 > d:\sql.sql
2>数据库导入命令:source D:\sql.sql
3>mysql查询字符集设定的命令:show variables like '%set%';
4>mysql设定字符集:set name utf8
【注意】mysql导出的数据库不要用记事本打开,因为微软的记事本编码使用的是utf-8不是withoutBOM,会出问题。
如果数数据库查出来的值显示乱码,确定数据是否为从其他版本的数据库导出又导入你自己的数据库的。因为mysql数据库服务器的版本不同,直接导入数据就有可能出现问题。例如我的mysql数据库的数据在本地运行中文完全没有问题,但是当移植到新浪SAE上面的时候,因为跟他的mysql服务器版本不同,使用phpmyadmin导入sql数据,虽然在导入的时候已经选好的字符集为utf-8, phpmyadmin中查看中文也完全没有问题,但是在打开页面的时候,所有从数据库中查处的数据中,全部都是诸如问号的乱码。
网上的解决办法是在 执行每条sql语句之前使用mysql_query("set name utf8");但是加入这句话却报错,最后原因是在mysql5.0之后,mysql的函数基本都废弃了,而是使用它的扩展函数mysqli, mysqli_query($link,'utf8');进行设置,这样中文乱码的问题就解决了。
期间还有一个问题就是,如果不用上传到服务器的数据,而是自己再通过网页重新添加一些中文信息,也是可以正常显示的,而如果直接在数据库中使用insert与语句插入中文的数据,还是不能正常显示。 具体问题不详 目前估计还是因为数据库版本不同造成的。
总的解决办法就是:数据库编码设置正确,页面编码设置正确,在php数据插入数据库的时候进行严谨的处理,对于可能出现的问题,严格处理。
内容总结
以上是互联网集市为您收集整理的php中文乱码问题分析及解决办法全部内容,希望文章能够帮你解决php中文乱码问题分析及解决办法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。