我有一个PHP脚本,当我将文件的编码设置为UTF-8而没有BOM或ANSI时,它可以正常工作。
如果我将文件分别设置为带有BOM的UTF-8编码,那么PHP文件的输出就会搞乱。
但是现在我遇到了尝试在俄语操作系统(Win 7,XAAMP)上安装相同脚本时,Apache或PHP总是使用BOM提供输出,从而弄乱了输出。
在这种情况下,更改PHP文件的编码没有帮助......
有没有办法将APACHE或PHP设置为永远不使用带有BOM的UTF-8,无论PHP文件的编码如何?
亲切的问候!
答案 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();