html中字符编码的确定算法(二)
2010-11-12 15:28
120 查看
html中字符编码的确定算法(二)
tomorrow.cyz@gmail.com 上一篇文章中描述了html字符编码确定的基本算法,本文将详细描述第五条中的文档查找编码算法。将指针指向输入流的一个字节(开始的时候指向第一个字节)。如果用户代理在这些子步骤的任何时候耗尽字节或者确定扫描更多的字节会没有效率,则跳到整体的文档查找编码算法的下一步。用户代理可能确定扫描任何字节是效率不高的,在这种情况下,这些子步骤完全被调过。
现在,重复下面的两步,直到算法终止(用户代理终止,或者因为发现了character encoding)。
1.如果指针指向: 1.1)‘<!—‘这样的字节序列(0x3C 0x21 0x2D 0x2D) 则向前推进到’à’(0x2D,0x2D,0x3C)之后的第一个字节。 1.2)‘ <meta’这样的字节序列跟着一个空格或者斜线(0x09,0x0A,0x0C,0x0D,0x20,0x2F) 1.2.1)推进指针,让它指向下一个0x09,0x0A,0x0C,0x0D,0x2F这样的字节中的一个。 1.2.2)置空属性列表。 1.2.3)将got pragma置为false。 1.2.4)将mode置为null。 1.2.5)将charset置为null(算法需要,区别于一个无法识别的编码或者空字串)。 1.2.6)Attributes:Get an attribute和它的值。如果没有发现属性,跳到下一步。 1.2.7)如果属性名已经在属性列表中,返回到标记为1.2.6(标记为Attributes)。 1.2.8)匹配属性:如果属性名是”http-equiv”,属性值为”content-type”,则设置got progma为true;如果属性名是”charset”,且charset仍然还为null,设置charset为属性值对应的encoding,并设置mode为“charset”。 1.2.9)返回到1.2.6(标记为Attributes)。 1.2.10)Processing:如果mode为null,跳到(2)。 1.2.11)如果mode是pragma,但是got pragma是false,则跳到(2)。 1.2.12)如果charset是UTF-16 encoding,将值改成charset UTF-8。 1.2.13)如果charset是不支持的charset encoding,则跳转到(2)。 1.2.14)返回charset给出的encoding,以及tentative的confidence,终止这些步骤。 1.3)’<’加上可选的’/’,跟着ascii字母(a-z,A-Z)的序列 1.3.1)推进指针到下一个0x09,0x0a,0x0c,0x0d,0x20,0x3e中的一个字节。 1.3.2)重复get an attribute指到没有再发现更多的属性,然后跳到整体算法的第二步。 1.4)<! 1.5)</ 1.6)<? 推进指针指向<后的第一个>(0x3E)字节。 1.7)其它字节 什么也不做。 2.推进到输入流的下一个字节,继续回到(1)。
相关文章推荐
- html中字符编码的确定算法(一)
- 有关保存文件时的编码选项与html/jsp页面设定字符编码的配置
- contains 和 ele.compareDocumentPosition确定html节点间的关系
- 算法竞赛入门经典:第六章 数据结构基础 6.9 根据二叉树的后序和中序确定前序序列
- HTML 文档的字符编码未声明。如果该文件包含 US-ASCII 范围之外的字符,该文件将在某些浏览器配置中呈现为乱码。页面的字符编码必须在文档或传输协议层声明。
- 可达性分析算法-确定那些对象是垃圾(转)
- 基于dsp_builder的算法在FPGA上的实现(转载自http://www.cnblogs.com/sunev/archive/2012/11/17/2774836.html)
- 微软的实习生笔试题,不是太难,算法的题好多,但是很多答案都不确定,欢迎大家讨论答案~
- HTML 文档的字符编码未声明。如果该文件包含 US-ASCII 范围之外的字符。。。/escape函数被废弃
- HTML实体字符编码
- 任意给出年月日,如何确定其为周几的算法
- 动态生成html的<ul><li>列表项的算法
- html-----018----HTML Web Server/HTML URL 字符编码
- [html] 实现点击切图的小算法
- 整数划分算法原理与实现(转载于 http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1192308.html 李宁的极客世界)
- JAVA分析html算法(JAVA网页蜘蛛算法)
- 文本比较算法剖析(2)-如何确定最优匹配路径
- 【转】 [翻译]C#数据结构与算法 – 前言&第一章 (原文:http://www.cnblogs.com/lsxqw2004/archive/2009/07/01/1366118.html)
- contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
- 微软的实习生笔试题,不是太难,算法的题好多,但是很多答案都不确定,欢迎大家讨论答案~