不带BOM的UTF-8和UTF-8->;PHP脚本
我有一个PHP脚本,当我在没有BOM或ANSI的情况下将文件的编码设置为UTF-8时,它可以正常工作 如果我分别使用BOM将文件设置为UTF-8编码,那么PHP文件的输出就会混乱 然而,现在我在尝试在俄罗斯操作系统(Win7,XAAMP)上安装相同的脚本时遇到了一个问题,即Apache或PHP总是使用BOM交付输出,从而将输出搞乱 在这种情况下,更改PHP文件的编码没有帮助 有没有办法将APACHE或PHP设置为无论PHP文件的编码是什么,都不在BOM中使用UTF-8不带BOM的UTF-8和UTF-8->;PHP脚本,php,apache,utf-8,webserver,Php,Apache,Utf 8,Webserver,我有一个PHP脚本,当我在没有BOM或ANSI的情况下将文件的编码设置为UTF-8时,它可以正常工作 如果我分别使用BOM将文件设置为UTF-8编码,那么PHP文件的输出就会混乱 然而,现在我在尝试在俄罗斯操作系统(Win7,XAAMP)上安装相同的脚本时遇到了一个问题,即Apache或PHP总是使用BOM交付输出,从而将输出搞乱 在这种情况下,更改PHP文件的编码没有帮助 有没有办法将APACHE或PHP设置为无论PHP文件的编码是什么,都不在BOM中使用UTF-8 亲切的问候 下载文件时会添
亲切的问候 下载文件时会添加BOM表。。。这可能是一个bug,但是下载一个文件,将内容保存在一个没有添加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();
php和apache都没有通过magic AFAIK添加BOM。这也是我的想法——在基于欧洲的Windows 7操作系统上安装XAAMP时也是如此,但由于某些原因,我不明白,在使用russion Win 7操作系统时,Apache或PHP神奇地添加了一个BOM表…将内容保存在/tmp文件中并在下载后帮了我很大的忙,因为在线服务swisspost不再接受带有BOM表的文件,而在直接下载csv/文本文件时,浏览器会自动添加BOM表。你为我节省了宝贵的时间。