害,说起来都是泪!当年我刚接朋友那小破美食站,用PHPCMS采集各种深夜食堂家常菜食谱,一开始美滋滋,感觉一天更50篇菜不在话下,坐等广告分成请朋友喝奶茶啃鸭脖。结果第二天起来刷新后台,好家伙!那页面不是满屏的“??????”就是一堆歪歪扭扭像外星菜名的符号,什么“?麻婆豆?腐用?葱爆”,连菜里加的香菜都差点变成“外星香菜”——哦不对,就是连字符都串位了。那时候对PHPCMS采集乱码修复一窍不通啊,以为是网站服务器炸了是外星人入侵后台改菜谱了,慌慌张张给服务器客服打电话,人家慢悠悠查了半小时甩一句“你这是编码不对,自己搞PHPCMS采集乱码修复去吧”。
那天我蹲在出租屋马桶上查了整整4小时PHPCMS采集乱码修复的资料,踩了不下10个小坑——一会儿改模板一会儿改数据库一会儿乱装插件,差点把整个站的数据都删了。还好后来碰上个懂行的程序员哥哥(没错,土味正能量强行插播一下:遇到难题别放弃,总有贵人或者靠谱教程等你!),教了我两招真·绝杀双buff,从此我的美食站再也没出过乱码菜市场的糗样,广告分成虽然没请朋友喝到超大杯奈雪的杨枝甘露,但至少请吃了楼下的15块钱麻辣烫加3个鱼丸!
程序员哥哥跟我说,PHPCMS采集乱码修复的核心问题,99.9999%都是“编码不统一”!什么意思呢?就好比你去菜市场买菜,你说中文说“给我两斤新鲜的白菜”,卖菜的阿姨只会说方言“给我两斤嫩生生的白菜帮子加菜心”,结果旁边帮你装菜的只会说英语“yes,yes,cabbage,two kilos”——最后你拿到手的要么是烂白菜要么是烂菜帮子要么是烂翻译菜名,这不就是乱码嘛!
所以第一招编码锁王buff,就是要把整个PHPCMS系统的「门牌号」「菜单」「厨房」「菜市场」都统一成UTF-8(万能的国际通用语哈,就像普通话走遍中国,UTF-8走遍全球互联网)!别嫌麻烦,每一步都别漏,过来人告诉你漏一步都可能重新变回乱码菜市场!
先去你要采集的那个深夜食堂网站看看人家的编码是什么!怎么看?教你个超简单的小白方法,不用懂代码不用查后台,直接打开浏览器右键点击页面空白处,选「查看网页源代码」(不同浏览器可能名字不一样,比如Chrome是这个,Edge也是差不多的,实在找不到的话直接搜“浏览器查看网页编码”),然后在第一行找,xxx如果是UTF-8那最好,直接用就行;如果是GBK/GB2312/GB18030,那我们后面要加个小翻译官插件!哦对,关键词来一波:PHPcms采集乱码修复第一步就是确定目标源编码!PHPcms采集乱码修复第一步就是确定目标源编码!PHPcms采集乱码修复第一步就是确定目标源编码!(魔性重复不硬堆,因为真的太重要了!)

数据库就是你的PHPCMS小厨房,所有采集回来的菜谱都要放这里炒成成品菜!如果小厨房的门牌号是GBK,菜市场送来的是UTF-8,那炒出来的肯定是四不像菜!怎么改?
ALTER DATABASE `你的数据库名` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE `你的数据库名`.`v9_article` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE `你的数据库名`.`v9_article_data` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
哦对!PHPcms采集乱码修复必须改数据库!PHPcms采集乱码修复必须改数据库!PHPcms采集乱码修复必须改数据库!(别嫌烦过来人警告)前端后端模板就是你的PHPCMS菜单和收银台,要是收银台收的是英镑菜单写的是人民币,那顾客肯定看不懂!怎么改?
刚才锁王buff是如果大家都是UTF-8就没问题,但如果目标源是GBK/GB2312/GB18030的“方言菜名”怎么办?别急,第二招翻译官buff来了!PHPCMS自带一个免费的小翻译官插件?不对不对,是自带一个乱码转译功能!不过小白一般找不到这个功能藏在哪里,过来人告诉你藏在采集规则的「内容过滤」里!关键词再魔性一波:PHPcms采集乱码修复自带转译功能!PHPcms采集乱码修复自带转译功能!PHPcms采集乱码修复自带转译功能!
怎么样?这两招绝杀双buff学会了吗?学会了赶紧去给你的乱码菜市场PHPCMS采集乱码修复一下!别像我当年那样蹲马桶上哭!土味正能量又来了哦:世上无难事只怕有心人,只要你认真看教程认真操作,PHPCMS采集乱码修复根本不是事儿!PHPcms采集乱码修复根本不是事儿!PHPcms采集乱码修复根本不是事儿!
最后过来人给你们留个彩蛋提醒:批量采集之前一定要先测试3-5条!一定要先测试3-5条!一定要先测试3-5条!不然采集回来500篇乱码菜名,你删都要删半小时!还有哦,如果测试完还是有乱码,那可能是目标源有JavaScript加密内容,这个时候就需要稍微懂点技术的人帮忙啦,或者换个没有加密的目标源哈!
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图