WordPress 与 UTF-8 的 BOM 问题-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

WordPress 与 UTF-8 的 BOM 问题

简介:

我们都知道,在 WordPress 中编辑模板或改动相应的函数文件时,如果使用了中文字符,那么保存时应选择“UTF-8”格式。
    不过,笔者之前使用 UltraEdit 编辑时总出问题,上传改动后的函数或插件文件后屡屡发现很多基于 COOKIE 或 SESSION 的功能变得不正常,甚至不能进入管理面板。

  自己找到的笨办法便是使用 WordPress 自带的编辑器,虽然麻烦了些,但总算能够趋于正常。

  近日在网上搜索到一篇文章,对这个情况如何解决解释得很详细:

    简单地说,这类问题的原因在于,在将文件保存为 UTF-8 格式时,编辑器默认在文件开始位置添加了二个字节的 BOM(Byte Order Mark),内容为“FFFE”,但 PHP 设计之初并没有考虑 BOM,因此,便会将文件开头这三个 BOM 字符直接输出。这是造成上述问题的根本原因。
    解决方法也很简单,即在使用 UltraEdit 保存 UTF-8 格式文件时,选择“UTF-8 no BOM”,而不是单纯的“UTF-8”。

    ——————————————————-
    WordPress 主题编码导致页面正常,而源文件是乱码

    我的 Blog 是用 WordPress 实现的。前几天发现,在打开文章,使用 IE 或 Firefox 查看源文件时,里面的中文全部成了乱码,以为是 UTW 引起的。换上了新主题 My Simplism,禁用了 UTW,启用 Simple Tags,问题依旧。后来搜索了一圈,找到 WordPress 中文论坛上的一个帖子。

    原来,页面正常而源文件乱码的根源出自主题的字符编码集。原版的编码集用的是 ANSI,我修改之后,添加了中文,于是发生了该现象。

    解决方法也简单,按该帖子所述,找个文本编辑器,将主题的 php 文件另存为 UTF-8 编码即可。这样的文本编辑器太多了,我自己常用的就有Edit Plus、UltraeEdit、EmEditor、Notepad++ 等等。推荐 EmEditor,因为可以直接在“另存为”对话框中控制是否添加 BOM。

    原帖子:

    重新用16进制编辑器把主题文件存成UTF-8不带签名(BOM)的格式:不用复制-粘贴,就用编辑器打开,然后另存一次,覆盖原来的就可以了。

    ——————————————————-
    网眼还发现一个比较简便的办法:

    虽然在中文Windows下,浏览器打开“源文件”,看到的是乱码(用记事本打开的),但是保存一下(用 ANSI 编码),再用 UltraEdit 打开保存的文件,看到的就是正常的文字,汉字也正常。










本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/286449,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: