WordPress源代码中文乱码的解决方法

  发布时间:2010-06-06 23:03:56   作者:佚名   我要评论
WordPress在使用一切正常,无意查看源代码发现中文字符为乱码。潜意识告诉我们,应该是编码问题,问题应该是主题模板的变法,于是把所有模板文件都用EDITPLUS另存问UFT-8变法,发现问题还是没有解决。
查看相关教程,UTF-8和UTF-8 + BOM有所区别,于是把function.php编码改为后者。问题解决。

UFT-8 与UTF-8 BOM 的区别:(收集过来,我还没看)
UTF-8以字节为编码单元,没有字节序的问题。UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。例如“奎”的Unicode编码是594E,“乙”的Unicode编码是4E59。如果我们收到UTF-16字节流“594E”,那么这是“奎”还是“乙”?

Unicode规范中推荐的标记字节顺序的方法是BOM。BOM是Byte order Mark。BOM是一个有点小聪明的想法:

在UCS编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。

这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。

UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF(读者可以用我们前面介绍的编码方法验证一下)。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。

相关文章

最新评论