没有BOM的UTF-8和UTF-8 - > PHP脚本

时间:2014-02-12 08:37:09

标签: php apache utf-8 webserver

我有一个PHP脚本,当我将文件的编码设置为UTF-8而没有BOM或ANSI时,它可以正常工作。

如果我将文件分别设置为带有BOM的UTF-8编码,那么PHP文件的输出就会搞乱。

但是现在我遇到了尝试在俄语操作系统(Win 7,XAAMP)上安装相同脚本时,Apache或PHP总是使用BOM提供输出,从而弄乱了输出。

在这种情况下,更改PHP文件的编码没有帮助......

有没有办法将APACHE或PHP设置为永远不使用带有BOM的UTF-8,无论PHP文件的编码如何?

亲切的问候!

1 个答案:

答案 0 :(得分:0)

在下载文件时添加了BOM ...这可能是一个错误,但是下载了一个将内容保存在文件中的BOM没有添加......然后诀窍是下载没有BOM的文件

  //Define filename
  $filename = 'FILE.TXT'; 

  //Remove BOM
  $txt= str_replace("\xEF\xBB\xBF", '', $file_txt);
  //Save File in Server
  file_put_contents($filename, $txt);

  //Start Download of the file
  ob_end_clean();
  header("Content-Type: application/octet-stream; "); 
  header("Content-Transfer-Encoding: binary"); 
  header("Content-Length: ". filesize($filename).";"); 
  header("Content-disposition: attachment; filename=" . $filename);
  readfile($filename);
  die();