PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法_php实例_脚本之家

PHP
下载文件时自动增加bom头,首先需求大家弄明白,什么是bom头?在Windows下用记事本之类的程序将文件文件保留为UTF-8格式时,记事本会在文件头前边加上多少个不可以知道的字符,正是所谓的BOM。

在utf-8编码文件中BOM在文件底部,占用三个字节,用来标示该公文归属utf-8编码,现在曾经有众多软件识别bom头,不过还只怕有个别不能够识别bom头,比如PHP就无法识别bom头,那也是用记事本编辑utf-8编码后实施就能够出错的原由了。

bwin必赢棋牌,不光限于 记事本保存的公文,只要在文件的开口包罗了EF BB BF
多少个不可以见到的字符(十五进制应该是是xEFxBBxBF,用二进制编辑文件可以看到)。那疑似三个蔚然成风的东西,当系统看见那东西的时候,就能够认为您那些文件是UTF-8编码的。

假若你的接口是UTF-8的,你供给抑遏下载二个文书,举例csv.excel在暗中认可景况下,以为csv是GB编码的,所以假诺米有bom头,那你给客户突显的文书,或然正是乱码了。

怎么加bom头呢?

在出口文件此前拉长bom头就可以了:

代码如下:

// 文件名 $filename = "www.jb51.net .csv"; header('Expires: ' . gmdate('D, d M Y H:i:s', $_SERVER['REQUEST_TIME'] + 10) . ' GMT'); header('Cache-Control: max-age=10'); //header('Content-Type: application/vnd.ms-excel; charset=utf-8'); header('Content-Type: text/csv; charset=utf-8'); header("Content-Disposition: attachment; filename={$filename}"); // 如果结果中有提示信息,则把第一行输出改为提示信息文字 $out = "xEFxBBxBF";// 加上bom头,系统自动默认为UTF-8编码 if (!empty { $out .= "{$extra['notice']}rn"; } // 输出 foreach  { $out .= implode . "rn"; } /* if  { $out = iconv("UTF-8//IGNORE", "GBK", $out); } */ echo $out; 

以下内容给大家介绍解释BOM头和去掉方法

去掉bom头的不二秘籍,轻易的是底下三种:

1、editplus去BOM头的法子

编辑器调节为UTF8编码格式后,保存的文书前边会多出大器晚成串隐蔽的字符,用于编辑器度和胆识别这么些文件是不是是以UTF8编码。

运转Editplus,点击工具,选取首选项,选普通话件,UTF-8标记接收总是删除签字,然后对PHP文件编写制定和封存后的PHP文件正是不带BOM的了。

2、ultraedit去除bom头办法

展开文件后,另存为选项的编码格式里筛选,鲜明就ok了

什么,去掉bom头很简短吗

再来生龙活虎段切磋utf8的BOM消息的

BOM是指php文件本身的储存格局为带BOM的UTF-8,普通页面包车型大巴中文乱码情势相通不是由那一个缘故促成的。

header("Content-type: text/html; charset=utf-8");

这句话调控html输出页面包车型客车编码格局,BOM独有在WINDOWS下行使“记事本”存款和储蓄为UTF-8时才会有,那个能够用WINHEX把初阶的2个字节删掉。

在dreamweaver里面编码设置里面能够设置是还是不是带BOM,日常只要php输出的不是图表,BOM都不会造成难点。

GDI Stream假若开首有了额外的 字符就博览会示为 红叉。

如上内容给我们介绍了PHP
下载文件时自动增多bom头及解释BOM头和去掉方法,希望我们欢愉。

发表评论

电子邮件地址不会被公开。 必填项已用*标注