服务器迁移以后,晴天钟出现了个古怪的问题:中文版页面中有一部分的中文全部成了问号“?”,但其他的中文却没有任何问题,英文版也没有任何问题。

  经检查,凡是使用include函数调用的模块,底下的中文全部成了问号,用require或require_once则没有问题;而页面的编码的确是设置为UTF-8,服务器迁移以前运行了一年也没有异常。

  在网上搜了半天,又写了几个测试文件,用include调用的文档却能正常显示,真是百思不得其解。

  捣鼓了半天,注意到用vi打开的时候文件头多出了<feff>的标识,在网上一搜,发现原来这是BOM(即unicode signature)的标示符,是不是这个原因呢?于是将<feff>去掉,中文解析正常!

  另:近期有站长反映说某php程序工作异常,管理员答复是Zend还没有在新服务器上安装,不知道BOM导致include函数下utf-8的中文无法解析的问题是否和没有装Zend有关。