很多用phpcms搭老站的朋友,有没有碰到过好好的站突然变乱码?打开全是看不懂的符号或者方块,客户催着改,自己盯着代码半天摸不着头脑,别提多闹心了。
phpcms老版本默认是gbk编码,后来很多人改模板转utf-8,转来转去就把编码搞乱了。说白了就像你说普通话我讲方言,俩人各说各的,浏览器自然输出不对,可不就乱了嘛。
先拿Notepad++打开你任意一个模板文件,右下角直接能看到当前文件的编码,记下来。再进phpmyadmin打开你站点的数据库,看数据库默认编码是不是和文件一致。
这里必须提醒你,改编码之前一定要先全量备份!一定要先备份!我见过太多人图省事直接改,把老数据搞坏了,找恢复都找不回来,欲哭无泪。
我帮朋友处理过不下十个迁移后乱码的问题,十有八九是漏改了配置文件的编码设置。很多人搬站只导数据库传程序,忘了改这个小地方。

打开phpcms配置目录下的数据库配置文件,找里面的dbcharset配置项,就是这行:
``` 'dbcharset' => 'utf8', ```把这里的编码改成和你数据库、文件一致的就行,是gbk就写gbk,是utf8就写utf8,改完记得去后台清一下全站缓存,刷新页面一大半都能直接好。
这个坑真的太隐蔽了,好多人查了一圈编码全对,就是乱码,愁得掉头发。其实就是你改模板的时候,用了某些默认带BOM的编辑器,给文件加了多余的BOM头。php解析的时候会把这个BOM头当成内容输出,直接打乱页面编码。
就好比你寄快递,面纸外面多粘了一层透明胶,快递员扫二维码根本扫不出来,一个道理。
解决也超级简单:
其实吧,phpcms的乱码故障真不是啥疑难杂症,就是几个小坑藏得深,顺着这几个方向挨个查,十分钟基本都能搞定,别上来就慌着重装程序,那才是真的越搞越乱。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图