昨天在站长群里碰到一个刚做网站半年的朋友说,打开自己网站全是方块乱码,急得团团转,问我网站乱码怎么解决。其实我刚做网站那会也碰到过这个问题,那时候不懂什么编码,以为网站废了要重做,折腾了大半天,后来才发现就是个不起眼的小问题,说出来都是经验教训。

网站乱码怎么解决先查编码格式
十有八九的乱码问题都是编码不统一搞的鬼,对吧?你写代码的时候本地编辑器用的GBK,上传到服务器人家默认是UTF-8,或者反过来,数据库编码和程序编码不匹配,那不乱码才怪。我刚学做网站那会,把本地写好的PHP文件直接用FTP上传,根本不知道编辑器保存还有编码一说,那时候我编辑器默认保存成GB2312,服务器解析的时候不认识,打开网页全是乱码,我还以为是服务器坏了,折腾了快一天才搞清楚原来是编码的问题。所以现在不管做什么项目,我全都是统一用UTF-8,从编辑器到服务器到数据库,全转成UTF-8,再也没出过这种低级问题。
看看是不是FTP传输出了问题
这个坑也是很多新手容易踩的,我当年也栽过。你用FTP传文件的时候,是不是默认开的自动传输?有时候FTP会把文本文件当成二进制文件传输,特别是带中文的文件,传上去之后就容易出乱码。这个解决起来其实超简单,你打开FTP工具的设置,把传输模式改成ASCII就好了,别用自动或者二进制,就这一个小设置,能帮你省好多事。我那时候不知道有这个设置,传上去乱码了就重新传,传了七八次还是乱,后来还是一个老站长提醒我才知道,说多了都是泪。
数据库编码不匹配也会导致乱码
很多新手用开源程序建站,安装的时候眼睛一闭不看选项,一路下一步,结果数据库编码选错了,后面存进去的中文全变成乱码,这种情况太常见了。要是你刚装完程序就发现不对,那最简单,直接删掉数据库重新装,装的时候认准UTF-8编码选就完了。要是你已经加了不少内容才发现乱码,那就要把数据导出来,转成正确的编码之后再导回去,虽然麻烦点,但也能解决。这里说句实在话,从一开始就把所有环节的编码统一成UTF-8,真的是一劳永逸,别嫌麻烦,不然后面出问题更麻烦。
检查服务器配置有没有错误
除了上面说的几种情况,服务器或者web容器的配置不对,也会出乱码。比如Nginx或者Apache的配置里,默认字符集没设置对,浏览器解析的时候就会出错,出现乱码。你只要打开配置文件,加上一句AddDefaultCharset UTF-8就行了,很简单。还有一种情况,你要是用了CDN,有些CDN默认会给你加不对的编码头,这种就去CDN后台改一下配置就行,具体怎么改,以服务商或官方页面说明为准。
我还碰到过一种比较奇葩的情况,有个朋友把网页文件保存成了带BOM的UTF-8,结果PHP解析的时候把BOM当成内容输出了,导致头信息出错,页面也跟着乱码,后来把文件转成不带BOM的UTF-8就好了。这种情况虽然少见,但碰到了也可以往这方面想想。
那要是你按上面的方法都排查了一遍还是有乱码怎么办?你可以先试试换个浏览器打开,看看是不是只有你自己这边乱码。要是只有你自己浏览器打开乱码,那可能是你浏览器默认编码选错了,手动改一下编码设置或者换个浏览器就好了。我之前就碰到过有人不知道怎么把浏览器默认编码改成了西欧编码,打开所有中文网站全乱码,改回UTF-8立马就好。要是所有人打开都乱码,那你就得看看是不是程序代码哪里出bug了,比如读文件转码的时候写错了代码,这种就得找懂开发的朋友帮你看看代码了。
其实做网站久了,这种小问题真的都是家常便饭,说白了大多都是刚开始做的时候细节没注意,踩过一次坑之后就记住了。编码统一这件事说起来简单,但真的很多人不重视,等到出了问题才后悔。按我分享的这几步一步步排查,90%以上的乱码问题都能快速解决,真不用一开始就慌得不行,觉得网站要废了。要是实在搞不定,那就找专业的人帮你看,别硬耗着,耽误时间不说,还可能把原来没问题的地方改出更多问题。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!