SEO探索

中文网站搜索引擎优化技术研究


UTF-8的BOM问题与WordPress

2006/09/3 by HighDiy

  我们都知道,在WordPress中编辑模板或改动相应的函数文件时,如果使用了中文字符,那么保存时应选择“UTF-8”格式。不过,笔者之前使用UltraEdit编辑时总出问题,上传改动后的函数或插件文件后屡屡发现很多基于COOKIE或SESSION的功能变得不正常,甚至不能进入管理面板。老实说,以前一直以为这可能是缘于UTF-8可能与SEO探索使用IIS实现WordPress的伪Permalinks之间存在某种不兼容的地方,毕竟IIS臭名昭著,出点问题也很正常 :) 。而将编辑后的UTF-8格式的模板文件上传时,尽管不会出这么大的问题,但在显示页面时往往会多出一个空行或乱字符,造成搜索引擎如Baidu收录页面出现多了一个“?”的情况。——不过,Google与Yahoo则没有这个现象,所以,之前也曾怀疑Baidu在支持UTF-8方面存在某些不足

SEO探索在baidu中的显示
注意内容描述前面的“?”

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

  近日在Yskin’s Blog发现了这篇文章,对这类情况如何解决解释得很详细,推荐一下,希望对也遇到同样困扰的朋友有所帮助。

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

  解决方法也很简单,即在使用UltraEdit保存UTF-8格式文件时,选择“UTF-8 no BOM”,而不是单纯的“UTF-8”。

推荐:


回复 (回复须知)