返回顶部
首页 > 资讯 > 精选 >UTF-8文件中Unicode签名BOM的示例分析
  • 413
分享到

UTF-8文件中Unicode签名BOM的示例分析

2023-06-08 06:06:11 413人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关UTF-8文件中Unicode签名BOM的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。近日在调测一个UTF8编码的中文Zen Cart网站时遇到一件怪事,网页显示文字

这篇文章将为大家详细讲解有关UTF-8文件中Unicode签名BOM的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

UTF-8文件中Unicode签名BOM的示例分析
近日在调测一个UTF8编码的中文Zen Cart网站时遇到一件怪事,网页显示文字正常,用ie的察看源文件(记事本打开)却发现乱码,firefox没有这个问题。经在网上多方查证和多次测试,解决了这个问题,其实是UTF-8文件的Unicode签名BOM(Byte Order Mark)问题。

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文本文件做个这样的标记。

也就是说一个UTF-8文件可能有BOM,也可能没有BOM,那么怎么区分呢?三种方法。1,用UltraEdit-32打开文件,切换到十六进制编辑模式,察看文件头部是否有EF BB BF。2,用Dreamweaver打开,察看页面属性,看“包括Unicode签名BOM”前面是否有个勾。3,用Windows的记事本打开,选择 “另存为”,看文件的默认编码是UTF-8还是ANSI,如果是ANSI则不带BOM。

我找到Zen Cart的模版文件中的html_header.PHP,发现文件果然不带BOM,用UltraEdit-32另存为的方式加上BOM后,再上传html_header.php,一切正常。

注意用Convertz把gb2312文件转换成UTF-8文件时,默认设置是不带BOM的。不带BOM可能出现上述乱码问题,但是带 BOM,对于php的include文件要小心,会在php字节流前面多出EF BB BF,提前输出到显示器有可能会带来程序错误。一个解决方案是凡是被include的文件都保存为ANSI,主文件可以是UTF-8。要想把一个文件去掉 BOM,使用UlterEdit打开, 切换到十六进制编辑模式,把最前面三个字节(就是那该死的 EF BB BF)替换为20,保存(注意关闭保存时自动备份的功能),再切换到默认编辑模式,把最前面的三个空格去掉就可以了。

另外还学到一些编码的小知识:所谓的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会使用两个或三个字节。

关于“UTF-8文件中Unicode签名BOM的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: UTF-8文件中Unicode签名BOM的示例分析

本文链接: https://lsjlt.com/news/252430.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • UTF-8文件中Unicode签名BOM的示例分析
    这篇文章将为大家详细讲解有关UTF-8文件中Unicode签名BOM的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。近日在调测一个UTF8编码的中文Zen Cart网站时遇到一件怪事,网页显示文字...
    99+
    2023-06-08
  • Java中ANSI,Unicode,BMP,UTF等编码概念的示例分析
    这篇文章主要介绍了Java中ANSI,Unicode,BMP,UTF等编码概念的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、前言其实从开始写Java代码以来,我...
    99+
    2023-05-30
    java
  • JavaScript中ECMAScript、BOM、DOM的示例分析
    小编给大家分享一下JavaScript中ECMAScript、BOM、DOM的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下...
    99+
    2024-04-02
  • Java中Unicode编码和实现的示例分析
    这篇文章主要为大家展示了“Java中Unicode编码和实现的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中Unicode编码和实现的示例分析”这篇文章吧。Unicode的编码...
    99+
    2023-05-30
    java unicode
  • js下载文件并修改文件名的示例分析
    这篇文章主要介绍了js下载文件并修改文件名的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用js下载文件,使用<a>标签...
    99+
    2024-04-02
  • linux中ELF文件的示例分析
    这篇文章给大家分享的是有关linux中ELF文件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例程序我们的示例程序如下:#include<stdio.h> int ma...
    99+
    2023-06-16
  • vue中.vue文件解析的示例分析
    这篇文章将为大家详细讲解有关vue中.vue文件解析的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue 提供了一个 compiler.parseCompone...
    99+
    2024-04-02
  • System.map文件的示例分析
    小编给大家分享一下System.map文件的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!有关System.map文件的信息好象很缺乏。其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要。但是由于缺乏必...
    99+
    2023-06-27
  • mysql中配置文件的示例分析
    这篇文章主要为大家展示了“mysql中配置文件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql中配置文件的示例分析”这篇文章吧。 # MyS...
    99+
    2024-04-02
  • PHP中文件上传的示例分析
    小编给大家分享一下PHP中文件上传的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PH...
    99+
    2023-06-14
  • PHP中文件读取的示例分析
    这篇文章主要介绍PHP中文件读取的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.两个函数的语法:  fread()fread    ( reso...
    99+
    2023-06-14
  • HTML5文档结构标签的示例分析
    这篇文章给大家分享的是有关HTML5文档结构标签的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.文档结构标签1.1为什么引入文档结构标签?让标签更具语义化,结构更加清...
    99+
    2024-04-02
  • jqueryUI中tab标签页的示例分析
    这篇文章主要为大家展示了“jqueryUI中tab标签页的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jqueryUI中tab标签页的示例分析”这篇文...
    99+
    2024-04-02
  • HTML5中语义标签的示例分析
    小编给大家分享一下HTML5中语义标签的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在HTML5标准中,新加了几个用于...
    99+
    2024-04-02
  • html中h1 - h6标签的示例分析
    这篇文章给大家分享的是有关html中h1 - h6标签的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。     HTML<h2>-<...
    99+
    2024-04-02
  • CSS标签中显示模式的示例分析
    这篇文章将为大家详细讲解有关CSS标签中显示模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。标签的显示模式(重点)div和span标签样式完全相同,标签不同,显示的结果完全不同每个div会独占...
    99+
    2023-06-08
  • redis3.2中配置文件redis.conf的示例分析
    这篇文章主要介绍了redis3.2中配置文件redis.conf的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Redis启动的时候...
    99+
    2024-04-02
  • MySQL中InnoDB存储文件的示例分析
    这篇文章主要为大家展示了“MySQL中InnoDB存储文件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中InnoDB存储文件的示例分析”这...
    99+
    2024-04-02
  • MySQL中my.cnf配置文件的示例分析
    这篇文章主要为大家展示了“MySQL中my.cnf配置文件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中my.cnf配置文件的示例分析”这...
    99+
    2024-04-02
  • vue中单文件探索的示例分析
    这篇文章给大家分享的是有关vue中单文件探索的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在很多Vue项目中,我们使用 Vue.component 来定义全局组件,紧接...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作