时间:2021-05-08
可能你这里用了包含(include)文件,通常header和footer会这么做。打开被包含文件发现页面属性中“包括Unicode签名BOM”这一项是勾选的,那么我告诉你就是这个BOM引发的事故。
今天我在写一个JS脚本的时候又出现了BOM事故。
我在页面中插入一个外部JS,然后里面有这样一句话$.getJSON(“/my/newmsg”,function(data){alert(data);});其它浏览器都能正常的弹出内容,唯独IE下没动静,我郁闷了近一个小时,我怀疑这句话写错了怀疑JSON数据格式错了怀疑我人品有问题…
后来我怀疑编码不对,于是就看到了可恶的BOM打了勾,把它一去掉神迹就从乌云底下冒了出来。
虽然我懒惰很少更新博客,但不得不上来记录一下这个事,因为真是太意外了,JS也会因为BOM引发事故 – -|
Unicode规范中有一个BOM的概念。
BOM是Byte Order Mark的简写,就是字节序标记,这个东西在普通文本编辑器下是看不到的,可以说它是文件头吗?在二进制编辑器下才可以看到?可能是这样。
在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。Windows就是使用BOM来标记文本文件的编码方式的。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Unicode签名bom-什么是bom?BOM是ByteOrderMark的缩写。是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FFFE,变成
废话不多说,直接上代码以上这篇用PHP去掉文件头的Unicode签名(BOM)方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
问题表现:后台设置的签名文字最大长度无效,导致被人在签名里挂广告。原因分析:出现这个问题的原因是由于官方QQ互联里内置了微博签名的功能,因为使用微博签名的话会导
事后分析至少要包含这些内容:1.事故描述。2.根本原因描述。3.事件是如何稳定或修复的。4.用于解决事故的行动的时间表。5.事故是如何影响客户的。6.纠正或改正
注:Unicode相关知识的详细介绍请参考UTF-8,UTF-16,UTF-32&BOM。对于UTF-8/16/32而言,它们名字中的8/16/32指的是编码单