网页乱码的产生原因与解决

注意:AKCMS已于2019年12月27日宣布停止更新,此文档仅供老用户参考,不建议新用户选择AKCMS建站。
注意:AKCMS6.1.2已取消授权机制,文档中关于授权、服务、技术支持等的内容均已失效。

乱码是经常困扰站长的头疼问题,做过网站的差不多都遇到过乱码。下面我从乱码产生原因入手说说如何解决乱码问题。

一个网页要正常显示涉及多处编码设置:

1模板头部编码

模板源代码中<meta http-equiv="Content-Type" content="text/html; charset=xxxxxx" />所指定的编码

2模板自身编码

是模板保存到磁盘的编码,许多站长不知道这个编码。以UE为例,在保存文件时会提示选择编码,具体到AKCMS,通过AKCMS后台保存的模板会使用和AKCMS配置(/configs/configs.inc.php)一样的编码设置

3数据编码

数据可能是数据库也可能是缓存文件或读取URL的内容,最常见的数据源是数据库。

以上编码必须统一,才能正常显式,否则页面的部分或全部就会出现乱码。

遇到网页乱码第一步是先分析问题,先定位了问题才能有针对的快速解决,否则浪费时间也没有效果:

如果是模板部分乱码,往往是模板文件的保存编码不对,用UE等编辑器打开模板文件另存为,选择正确的编码保存再上传即可,需要注意的是一定要开启FTP的二进制模式(如何开启FTP软件的二进制上传模式?)。

如果是页面数据部分乱码,往往是数据源编码不对,以MySQL数据库为例,有可能是数据库编码与CMS编码不一致,统一起来即可;也有可能MySQL不同版本数据导入导出引起的乱码问题也比较常见,另文说明。

如果页面中文部分全部乱码,则可能是模板头部编码<meta>设置不对,修改保存即可。

本文大部分内容也同样适用于其他CMS做的网页。