当前位置: 首页 > news >正文

中国传统文化网站设计素材杭州网站建设 双收

中国传统文化网站设计素材,杭州网站建设 双收,网页设计对板式上有哪些要求,wordpress 缩略图质量关键术语解释(下) 如前所述#xff0c;现代字符编码模型共分为5层#xff0c;下面分层进行简要介绍。 一、第1层 抽象字符表ACR (Abstract Character Repertoire抽象字符清单)#xff1a;明确字符的范围(即确定支持哪些字符) 1. 抽象字符表ACR是一个编码系统支持的所有抽…关键术语解释(下) 如前所述现代字符编码模型共分为5层下面分层进行简要介绍。 一、第1层 抽象字符表ACR (Abstract Character Repertoire抽象字符清单)明确字符的范围(即确定支持哪些字符) 1. 抽象字符表ACR是一个编码系统支持的所有抽象字符的集合可以简单理解为无序的字符集合用于确定字符的范围即要支持哪些字符。 抽象字符表ACR的一个重要特点是字符的无序性即其中的字符并没有编排数字顺序当然也就没有数字编号。 2. “抽象”字符不具有某种特定的字形不应与具有某种特定字形的“具体”字符混淆。 3. 字符表可以是封闭的(即字符范围是固定的)即除非创建一个新的标准否则不允许添加新的字符比如ASCII字符表和ISO/IEC 8859系列都是这样的例子字符表也可以是开放的(即字符范围是不固定的)即允许不断添加新的字符比如Unicode字符表和一定程度上Code Page代码页(代码页后文会有详细解释)是这方面的例子。 二、第2层 编号字符集CCS(Coded Character Set)用数字编号表示字符(即用数字给字符编号) 注一般将“Coded Character Set”翻译为“编码字符集”或“已编码字符集”但这里的“编码”二字容易导致与后文的“编码方式”及“编码模式”中的“编码”二字混淆带来理解上的困扰因此觉得翻译为“编号字符集”为宜。 1. 前面讲了抽象字符表里的字符是没有编排顺序的但无序的抽象字符表只能判断某个字符是否属于某个字符表却无法方便地引用、指称该字符表中的某个特定字符。 为了更方便地引用、指称字符表中的字符就必须为抽象字符表中的每个字符进行编号。 所谓字符编号就是将抽象字符表ACR中的每个抽象字符(简称字符)表示为1个非负整数N或者映射到1个坐标(非负整数值对x, y)也就是将抽象字符的集合映射到一个非负整数或非负整数值对的集合映射的结果就是编号字符集CCS。因此字符的编号也就是字符的非负整数代码。 例如在一个给定的抽象字符表中表示大写拉丁字母“A”的字符被赋予非负整数65、字符“B”是66如此继续下去。 2. 由此产生了编号空间(Code Space一般翻译为代码空间、码空间、码点空间)的概念根据抽象字符表中抽象字符的数目可以设定一个字符编号的上限值(该上限值往往设定为大于抽象字符表中的字符总数)从0到该上限值之间的非负整数范围就称之为编号空间。 编号空间的描述 1可以用一对非负整数来描述例如GB2312的汉字编号空间是94 x 94 2也可以用一个非负整数来描述例如ISO-8859-1的编号空间是256 3也可以用字符的存储单元尺寸来描述例如ISO-8859-1是一个8比特的编号空间(2^8256) 4还可以用其子集来描述如行、列、面(Plane平面、层面)等等。 3. 编号空间中的一个位置(Position)称为码点(Code Point代码点)或码位(Code Position代码位)。一个字符占用的码点所在的坐标(非负整数值对)或所代表的非负整数就是该字符的编号又称之为码点值(即码点编号)。 不过严格来讲字符编号并不完全等同于码点编号(即码点值)。因为事实上由于某些特殊的原因编号字符集CCS里的码点数量要大于抽象字符表ACR中的字符数量。 在编号字符集中除了字符码点之外还存在着非字符码点和保留码点所以字符编号不如码点编号准确但若对字符码点的码点编号称之为字符编号倒也更为直接。 在Unicode编码方案中字符码点又称之为Unicode标量值(Unicode Scalar Value感觉不如字符码点更为直观)非字符码点和保留码点详见后文介绍。 4. 注意经常直接以“码点”指代“码点值”——当说到“码点”的时候有可能是在说编号空间(即码点空间)中的一个位置即码点也有可能实际是在说某个码点的码点值即码点编号。其具体含义需根据上下文而定。 这种类似的指代非常普遍又比如“字符集”、“字符编号”和“字符编码”这三个概念就经常相互指代。以“码点”指代“码点值”根据上下文倒也还不难理解但“字符集”、“字符编号”和“字符编码”三者也经常相互指代虽然有其令人无奈的历史原因但目前的实际情况所导致的结果却是使人迷惑、让人抓狂 5. 因此所谓编号字符集可简单理解为就是把抽象字符进行逐个编号或者说逐个映射为码点值(即码点编号)后所得到的结果。 编号字符集CCS常简称为字符集。 注意不要将编号字符集CCS和抽象字符表ACR相混淆。多个不同的编号字符集CCS可以表示同一个抽象字符表ACR换言之同一个抽象字符表ACR可以按不同的编号规则被编号为多个不同的编号字符集CCS。 6. 在Unicode标准中一个单个的抽象字符既有可能与多个码点对应(为了与其它标准兼容比如码点编号为U51C9与UF979的这两个码点实际上是同一个字符“凉”这是为了兼容韩国字符集标准KS X 1001:1998具体可参看Unicode的官方文档)也有可能使用一个由多个码点所组成的码点序列表示(为了表示由基本字符与组合字符组合在一起所组成的字符比如à由码点编号为U0061的基本字符字母“a”和码点编号为U0300的组合字符读音符号“̀”组成)同时也并非每一个码点都对应于一个字符也存在着非字符码点或保留码点。详见后文解释。 7. 特别注意虽然“编号”与后文某种字符编码方式CEF中的“编码”(即码元序列解释详见后文)以及某种字符编码模式CES中的“编码”(即字节序列解释详见后文)存在着对应的关系但“编号”与“编码”是截然不同的两个概念。 对字符编号的过程——即确定字符码点值的过程跟计算机还没有直接关系可认为是一个纯数学的问题因为只是将字符与编号(即码点值、码点编号)一一对应起来根本就还没有涉及到编码算法的问题(即还没有涉及到根据指定的字符编码方式CEF对编号进行编码以形成码元序列以及根据指定的字符编码模式CES对码元序列进一步编码以形成字节序列)。 但这两个概念经常被混用实实在在是让人困惑的源头这是很令人无奈与遗憾的现实。 三、第3层 字符编码方式CEF(Character Encoding Form字符编码形式、字符编码格式、字符编码规则)将字符编号(即码点值)编码为码元序列(即字符编码) 1. 在讲抽象字符表ACR时说过不同于传统的封闭的ASCII字符表其字符数是固定的Unicode字符表是一个现代的开放的字符表其字符数是不固定的未来可能有更多的字符加入进来(比如很多Emoji表情符就被源源不断地加入进来)。因此Unicode编号字符集所需要的码点数量必然是会不断增加的相对来说是无限的。 但计算机所能表示的整数范围却是相对有限的。比如一个无符号单字节整型数(unsigned char, uint8)能够表示的编号只有0~0xFF共256个一个无符号双字节短整型数(unsigned short, uint16)能够表示的编号只有0~0xFFFF共65536个而一个无符号四字节长整型数(unsigned long, uint32)能表示的编号只有0~0xFFFFFFFF共4294967296个。 2. 那么问题来了 1一方面怎么通过相对有限的整型数来高可扩展地、高可适应地应对未来相对无限增长的字符数量呢是用多个单字节整型数来间接表示还是用一个足够大的多字节整型数来直接表示呢 2另一方面ASCII字符编码作为最早出现、已被广泛应用的编码方案完全不兼容显然不明智那么是直接兼容还是间接兼容呢 这两方面的问题需要一个综合解决方案这就是字符编码方式CEF(Character Encoding Form)。 3. 字符编码方式CEF是将编号字符集里字符的码点值(即码点编号、字符编号)转换成或者说编码成有限比特长度的编码值(即字符编码)。该编码值实际上是码元(Code Unit代码单元、编码单元)的序列(Code Unit Sequence)。 那什么是码元呢为什么要引入码元这个概念呢字符集里的字符编号(即码点值、码点编号)又是如何转换为计算机中的字符编码(即码元序列)的呢别急这里先记下这个概念暂不深究后文有详细解释。 4. 字符编码方式CEF也被称为“存储格式”(Storage Format)。不过将CEF称之为存储格式实际上并不合理因为CEF还只是逻辑层面上的、与特定的计算机系统平台无关的编码方式尚未涉及到物理层面上的、与特定的计算机系统平台相关的存储方式(第4层才涉及到)。 在ASCII这样传统的、简单的字符编码系统中并没有也不需要区分字符编号与字符编码可认为字符编号就是字符编码字符编号与字符编码之间是一个直接映射的关系。 而在Unicode这样现代的、复杂的字符编码系统中则必须区分字符编号与字符编码字符编号不一定等于字符编码字符编号与字符编码之间不一定是一个直接映射的关系比如UTF-8、UTF-16为间接映射而UTF-32则为直接映射。 UTF-8、UTF-16与UTF-32等就是Unicode字符集(即编号字符集)常用的字符编码方式CEF。UTF-8、UTF-16与UTF-32后文各有详细介绍 5. 很多文章中将Unicode与各UTF(Unicode/UCS Transformation Format包括UTF-8、UTF-16与UTF-32等)之间的关系表述为Unicode为标准规范、各UTF为编码实现。 不严格地来讲也可以勉强这么认为。不过这种表述毕竟不够严谨而且无助于理解Unicode标准(即Unicode编码方案、Unicode编码系统)、Unicode字符集与各UTF字符编码方式这三者之间更为深入细致的关系。 注从现代字符编码模型的角度来看Unicode编码标准、Unicode编码方案、Unicode编码系统基本上为同义词是包括了抽象字符表ACR、编号字符集CCS、字符编码方式CEF以及下面要讲到的字符编码模式CES甚至传输编码语法TES五个层面在内的一整套标准方案系统并不特指其中的某一层。 四、第4层 字符编码模式CES(Character Encoding Scheme)将码元序列映射为字节序列 注一般将“Character Encoding Scheme”翻译为“字符编码方案”但习惯上通常将“字符编码标准”或“字符编码系统”称之为“字符编码方案”为避免引起理解上的困扰应译作“字符编码模式”为宜。 1. 字符编码模式CES也称作“序列化格式”(Serialization Format)指的是将字符编号进行编码之后的码元序列映射为字节序列(即字节流)后的形式以便经过编码后的字符能在计算机中进行处理、存储和传输。 如果说将编号字符集的码点值(即字符编号)映射为(即编码为)码元序列的过程属于跟特定的计算机系统平台无关的逻辑意义上的编码过程(该编码过程即第3层的字符编码方式CEF的编码过程)那么将码元序列映射为字节序列的过程就属于跟特定的计算机系统平台相关的物理意义上的编码过程(该编码过程即第4层的字符编码模式CES的编码过程)。 2. 由于硬件平台与操作系统设计上的历史原因对于UTF-16、UTF-32等采用多字节码元的编码方式而言必须使用一个原先称之为零宽度不中断空格(ZERO WIDTH NO-BREAK SPACE)的字符(Unicode字符编号为0xFEFF)来指定字节序(Byte-Order字节顺序、位元组顺序或称为Endianness端序)是大端序还是小端序计算机才能够正确地进行处理、存储和传输。(什么是字节序以及大端序、小端序解释详见后文) 不过对于UTF-8这种采用单字节码元的编码方式来说并不存在字节序问题不需要指明字节序。因此在各种计算机系统平台中UTF-8编码的码元序列与字节序列都是相同的。为什么UTF-8不存在字节序问题解释详见后文 3. 注意由于字符编码方式CEF与字符编码模式CES中都有“编码”二字因此通常所说的动词编码(Encode)有可能指的是通过字符编码方式CEF将编号字符集CCS的字符编号转变为码元序列也有可能指的是通过字符编码模式CES将字符编码方式CEF的码元序列转变为字节序列。 动词解码(Decode)则反过来当然也同样存在两种可能。 而通常所说的名词编码(Encoding)也就相应地有可能指的是码元序列也有可能指的是字节序列。当然在很多文章中名词编码往往实际上表述的是字符的编号既非码元序列亦非字节序列虽然有其历史原因但从现代字符编码模型的角度来看这应算作是一种错误表述或至少可认为是表述不够严谨。 因此必须根据上下文语境来具体理解。 4. 对于程序员而言通过字符编码方式CEF编码后所形成的码元序列更多的是一种逻辑意义上的中间编码(即编码中介属于从字符编号到字节序列的中间状态作为将字符编号转换为字节序列的中介而存在)不是平时直接“打交道”的对象。 而通过字符编码模式CES将码元序列进一步编码后所形成的字节序列才是平时直接“打交道”最多的物理意义上的最终编码虽然事实上还有第5层的传输编码语法TES所形成的编码但这种编码毕竟仅用于某些特殊的传输环境平时“打交道”的机会较少。 五、第5层 传输编码语法TES(Ttransfer Encoding Syntax)将字节序列作进一步的适应性编码处理 由于历史的原因在某些特殊的传输环境中需要对上一层次的字符编码模式CES所提供的字节序列(字节流)作进一步的适应性编码处理。一般包括两种 1一种是把字节序列映射到一套更受限制的值域内以满足传输环境的限制例如用于Email传输的Base64编码或者quoted-printable编码(可打印字符引用编码)都是把8位的字节映射为7位长的数据。 注Email协议设计为仅能传输7位的ASCII字符从一个8位字节的角度来看ASCII字符的首位始终为0所以除去首位的0实际有效的位数为7位或许最初是出于节约传输流量的考虑Email协议被设计为了仅能传输7位的ASCII字符。 2另一种是压缩字节序列的值如LZW或者进程长度编码等无损压缩技术。 这一部分内容本文不深入阐述有兴趣者可自行查找资料。 六、总结一下现代字符编码模型 对于Unicode这样的现代字符编码系统来说同一个字符因多个不同的字符编码方式CEF(如UTF-8、UTF-16、UTF-32等)而具有多个不同的码元序列(Code Unit Sequence)同一个码元序列因两个不同的字符编码模式CES(大端序模式、小端序模式)而又可能具有两个不同的字节序列(Byte Sequence)。 但这些不同的码元序列也好字节序列也好只要表示的是同一个字符所对应的码点值(即码点编号、字符编号)一般都是相同的(在Unicode标准中为了与其它标准兼容有少数字符可能与多个码点对应)。 好了关键术语先解释到这里其他术语将在后文中陆续解释。 二次总结1 1. 5 层模型 五层Transfer Encoding Syntax传输编码语法 将字节序列做进一步适应性编码处理 | 四层Character Encoding Scheme 字符编码模式 将逻辑上的码元序列映射成物理上的字节序列 | 三层Character Encoding Form字符编码格式 将字符编号编码为码元序列即字符编码 | 二层Coded Character Set编号字符集 用数字给 ACR 中的字符编号 | 一层Abstract Character Repertoire 抽象字符表 明确字符的范围即确定支持哪些字符 二次总结2 1. 二层CCS 中 Code Position字符编号 / 码点值 / 字符码点 一个字符占用的码点所在的坐标(非负整数值对)或所代表的非负整数就是该字符的编号 2.第三层CEF 中 码元序列字符编码 字符编码方式CEF将编号字符集里字符的码点值(即码点编号、字符编号)转换成或者说编码成有限比特长度的编码值(即字符编码)。该编码值实际上是码元(Code Unit代码单元、编码单元)的序列(Code Unit Sequence)。 UTF-8 / UTF-16 / UTF-32 就是 Unicode 字符集(即编号字符集)常用的字符编码方式CEF。 3. 第四层CES 中 字节序列 (同时解释了字节序列) 也称作“序列化格式”(Serialization Format)是将字符编号进行编码之后的码元序列映射为字节序列(即字节流)以便编码后的字符在计算机中进行处理、存储和传输。 5. 关于 Unicode 和 UTF-8 / UTF-16 / UTF-32 的理解 Unicode标准、Unicode编码方案、Unicode编码系统基本上为同义词是包括了抽象字符表ACR、编号字符集CCS、字符编码方式CEF以、字符编码模式CES、传输编码语法TES在内的一整套标准方案系统并不特指某一个层面。而 UTF-8 / UTF-16 / UTF-32 仅仅指 CEF 字符编码方式。
http://wiki.neutronadmin.com/news/153551/

相关文章:

  • 杭州网站建设网站制作搜索引擎优化seo什么意思
  • 数据做图网站有哪些eclipse网站开发例子
  • 服务企业网站建设的IT内蒙古城乡住房建设厅网站
  • 泰州网站制作企业成品视频直播软件推荐哪个好一点非周马加
  • 盐城做网站价格小程序搭建多少钱一个
  • 学做的网站基础蛋糕最新cms
  • html 手机网站开发上海小程序开发公司哪家好?
  • 怎么做阿里巴巴网站绍兴本地网站建设
  • wordpress知名站点个人律师网站模板
  • 什么网站可以查房屋建筑面积为什么尽量不要备案域名
  • wordpress 社交网站wordpress钩子
  • 网站seo服务登录网站定制
  • 沈阳做网站有名公司网站建设结算方式
  • 前程无忧做网站多少钱网站建设二级菜单
  • 开网站做网站网络服务器地址
  • 常熟网站建设icp备案模板图片可爱
  • 怎么研发软件app雪军miui一键优化
  • ps做阿里网站分辨率设置网站建设与维护面试
  • 小学网站建设淘宝网页版入口官网
  • 化工网站模板下载微信朋友圈推广
  • 网站 备案已注销下载京东网上购物
  • 什么值得买网站模板网站建设 制作公司
  • 成都企业网站公司外贸公司如何接单
  • 网站发展方向滕州网站制作
  • 交通建设集团网站腾讯企点app
  • 宝山网站建设费用中国建设移动门户网站
  • 简诉网站建设的基本流程图电商知识基础
  • 专业制作网站推荐摄影设计
  • 网站建设的重点难点广州网站整站优化
  • 兰州做网站公司有哪些广州企业官网建设