今天小编跟大家讲解下有关Unicode签名bom详细说明 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关Unicode签名bom详细说明 的相关资料,希望小伙伴们看了有所帮助。
Unicode签名bom-什么是bom BOM 是 Byte Order Mark 的缩写。是UTF编码方案里用于标识编码的标准标记 在UTF-16里本来是FF FE 变成UTF-8就成了EF BB BF。这个标记是可选的 因为UTF8字节没有顺序 所以它可以被用来检测一个字节流是否是UTF-8编码的。微软做这种检测 但有些软件不做这种检测 而把它当作正常字符处理。 微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节,windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的,然而这个只是微软暗自作的标记,其它平台上并没有对UTF-8文本文件做个这样的标记。 Unicode签名bom-查看utf-8的方法也就是说一个UTF-8文件可能有BOM 也可能没有BOM 那么怎么区分呢 四种方法。1 用UltraEdit-32打开文件 切换到十六进制编辑模式 察看文件头部是否有EF BB BF。2 用Dreamweaver打开 察看页面属性 看“包括Unicode签名BOM”前面是否有个勾。3 用Windows的记事本打开 选择“另存为” 看文件的默认编码是UTF-8还是ANSI 如果是ANSI则不带BOM。
Unicode签名bom4:用emeditor打开 选择“另存为” 看编码下面的添加 unicode 签名(bom)(G)是否勾选。如图:Unicode签名bom-在php中应用时的问题和解决方案 注意用Convertz把gb2312文件转换成UTF-8文件时 默认设置是不带BOM的。不带BOM可能出现上述乱码问题 但是带BOM 对于php的include文件要小心 会在php字节流前面多出EFBBBF 提前输出到显示器有可能会带来程序错误。一个解决方案是凡是被include的文件都保存为ANSI 主文件可以是UTF-8。要想把一个文件去掉BOM 使用UlterEdit打开,切换到十六进制编辑模式 把最前面三个字节(就是那该死的EFBBBF)替换为20 保存(注意关闭保存时自动备份的功能) 再切换到默认编辑模式 把最前面的三个空格去掉就可以了。 Unicode签名bom-编码小知识 另外还学到一些编码的小知识:所谓的unicode保存的文件实际上是utf-16 只不过恰好跟unicode的码相同而已,但在概念上unicode与utf是两回事 unicode是内存编码表示方案 而utf是如何保存和传输unicode的方案。utf-16还分高位在前(LE)和高位在后(BE)两种。官方的utf编码还有utf-32 也分LE和BE。非unicode官方的utf编码还有utf-7 主要用于邮件传输。utf-8的单字节部分是和iso-8859-1兼容的 这主要是一些旧的系统和库函数不能正确处理utf-16而被迫出来的 而且对英语字符来说 也节省保存的文件空间(以非英语字符浪费空间为代价)。在iso-8859-1的时候 utf8和iso-8859-1都是用一个字节表示的 当表示其它字符的时候 utf-8会使用两个或三个字节。
来源:爱蒂网