使用Wordpress快一个月了,在配置过程中常常被乱码困扰。下面总结下在哪些情况下会遇到乱码:
1.修改模板后,如果输入中文可能产生乱码。
2.数据迁移后、换主机后可能产生乱码。
3.发送邮件,主题、正文,发件人等字段都可能出现乱码。
4.wordpress版本升级可能导致乱码。
5.使用老外开发的插件可能会遇到此问题。
6.用Windows Live Writer等离线工具写博出现乱码。
以上六点基本涵盖了使用wordpress过程中可能遇到的所有乱码问题,如有遗漏敬请留言提示。下面一篇文章具体说明为啥会出现乱码、以及每种情况下的解决方案。
问题描述:在IE中,无论是在dedecms后台添加栏目,还是在前台发表文章,只要其中包含中文,都会出现乱码。而在firefox下一切正常。
问题分析:
1.dedecms没问题,可能是因为IE做了某些设置,导致中文不能被正确识别。但是http://www.yuluyu.com,在IE和firefox对于中文一切正常。http://www.lutuzhi.com在IE和firefox很正常。所以排除了IE设置引发问题的可能性。
2. 应该是dedecms程序的问题,google了一把、百度了一下,发现只有一个人提到过类似的问题,而且没人给出答案。而且firefox下dedecms又是正常的,所以也不能把这问题全归结在dedecms身上。毕竟这个系统经过多年发展,很多用户的使用已经比较稳定了。
至此陷入了僵局,本打算就此放弃研究。不甘心,用ZEND STUDIO跟了一下,发现dedecms输入的简体中文在POST的时候已经是乱码了。
数据从前段输入到存储至数据库可以简化为下面三步:
1.数据输入(dedecms界面)
2.数据传输
3.数据存储
现在数据在POST的瞬间被做了一次转换,而这个转换肯定不是dedecms做得。
那么问题至此有了眉目,在乱码这个问题上,dedecms不是罪魁祸首。出现乱码肯定是它在编码时没处理好,但是不全怪它。
解决方案:
那么到底是谁偷偷做了编码转换?问题应该出在IE或者它的插件上。
原来我的IE上有一个插件,是用来做繁简体转换的-alibabar。它有个选项叫:将送出的表格文字自动做繁简体转换。如下图:

导致乱码的选项
正是这个小软件做的编码转换,也是它导致dedecms在ie下不能正确处理简体中文。把该选项勾掉,一切正常了。
至此dedecms乱码的问题得到了解决,但是我还有一个疑问:
为什么同样的环境下其余两个网站没问题:
http://www.yuluyu.com-基于uchome
http://www.lutuzhi.com -基于wordpress
具体原因没仔细去分析,不过我认为dedecms在编码处理方面可以借鉴康盛创想的做法,那是一个更加成熟的解决方案。
1.试图进入wordpres后台,系统报错:
Warning: Cannot modify header information – headers already sent by (output started at D:\wamp\www\wp\wp-config.php:1) in D:\wamp\www\wp\wp-includes\pluggable.php on line 850
问题分析:提示信息没有明确指示出了什么问题,但是它提示了问题的大概是在wp-config.php这个文件里。
在出此问题之前,我的确对wp-config.php文件做了一点更改,我把一个wordpres链接的数据库名字改了一下,不过这个更改断不是此错误的根源。
通过zend studio单步调试发现,在出错页面的Html源代码里第一个字符是乱码。至此事情基本有了眉目:肯定是编码问题引起的这个错误。
在编辑word_config.php文件时,我用的是notepad。notepad默认情况下会把文件以ANSI格式保存。而wordpres默认用的是UTF8的编码,以ANSI编码格式保存的文件,在转化成HTML时首字符变成了乱码,所以会报错。
我们在编辑wordpres文件时输入了中文,保存时一定还要注意选择正确的编码。在我的机器上是UTF8编码,在你那里也可能是ANSI。总之出现乱码,先看看是不是编码格式引起的是个很好的习惯。
近期评论