网站出现中文乱码和特别字符的处理办法
时间:2017-02-20 12:12来源:无锡做网站公司
在做网站的过程中可能有部分朋友对于Web标准并不是很清楚,在进行网站开发,比如PHP+MySQL开发网站程序的时候可能会牵涉到页面的编码及数据库问题,这些会造成网站页面的乱码,让开发人员不由得心烦一下。
一、由于编码的设置错误
页面编码设置错误会导致浏览器也以错误的编码进行解析,那么无法分辨出来就会出现乱七八糟,看起来杂乱无章的符号,而不能正确显示出中文。如下图:
二、网站程序或者模板文件被以错误的编码打开后再保存
这样的情况很容易出现!网页设计师或者程序员如果在制作网站的过程中一定要注意看,千万别原来网页是GB2312编码的,却要用UTF-8的编码打开再保存后覆盖以前服务器上的程序或者模板文件,这样最容易出现乱码。
这里,马氪软件先介绍两个最常用的软件给大家:Notepad++、Dreamweaver,都是专门用作代码规范写作的工具,大家在修改页面文件的时候可以使用,以免出现乱码。
通常通过不同的FTP软件上传网站文件的时候也有可能会出现乱码的情况,大家可以通过专业软件,甚至是可以通过电脑自带的文档编辑器进行网页文件的修改和替换。
三、数据库编码不对
相信程序员一定清楚,在操作数据库时,不能与数据库本身编码混淆。而MySQL数据库内部默认的编码格式是UTF-8,那么通过其他编码传输给MySQL的数据会被转化为UTF-8编码。
如果网页是GB2312编码,通过PHP脚本中直接查询数据库出来的其实就是中文乱码。
解决方法:需要先使用mysql_query("SET NAMES GBK")来设置MySQL的连接编码,保存的页面声明编码和数据库设置的一样。(GBK其实就是GB2312的扩展)
PHP编程用到数据库时,数据库的编码也要用和网页显示的编码一致的编码格式,才能把数据库的内容显示在网页上,这样才不会出现乱码问题。
四、Apache服务器设定了服务器全局默认编码
我们这里就不去深入介绍Apache了,马氪软件这边主要是将可能造成乱码的问题总结出来。那么,如果服务器的编码默认了,前面我们三个出现乱码的问题都解决了,网站还是乱码的话,就需要和服务器或者主机服务器商咨询一下。
如果网站的编码是GB2312,服务器httpd.conf加入了AddDefaultCharset UTF-8,服务器会首先发送HTTP给浏览器,其优先等级肯定是要比页面里的声明编码高,那么浏览器肯定会出现识别错误,乱码也就产生了。
解决方法:1、网站管理员可以在自己的虚拟主机中加上AddDefaultCharset GB2312来覆盖全局设置2、可以通过.hatccess进行配置,这边我们也就不去累赘。
好了,其实网站的乱码并不可怕,我们可以分析造成乱码的原因,再有针对性得去处理。本来也是不太喜欢多累赘技术相关问题,希望是会对大家觉得有所帮助。
声明:除非注明,本站内容由无锡网站建设马氪软件原创发布©,转载请联系我们授权合作。