汉字编码方式介绍.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汉字编码方式介绍

谈谈 Unicode 编码,简要解释 UCS、UTF、BMP、 BOM 等名词 这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些 原来不清楚的概念,增进知识,类似于打 RPG 游戏的升级。整理这篇文章的动 机是两个问题: 问题一: 使用 Windows 记事本的“另存为”,可以在 GBK、Unicode、Unicode big endian 和 UTF-8 这几种编码方式间相互转换。同样是 txt 文件,Windows 是怎样识别编码方式的呢? 我很早前就发现 Unicode、Unicode big endian 和 UTF-8 编码的 txt 文件 的开头会多出几个字节,分别是 FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标记是基于什么标准呢? 问题二: 最近在网上看到一个ConvertUTF.c,实现了UTF-32 、UTF-16 和UTF-8 这三种编码 方式的相互转换。对于 Unicode(UCS2) 、GBK、UTF-8 这些编码方式,我原来就了 解。但这个程序让我有些糊涂,想不起来UTF-16 和UCS2 有什么关系。 查了查相关资料,总算将这些问题弄清楚了,顺带也了解了一些 Unicode 的细 节。写成一篇文章,送给有过类似疑问的朋友。本文在写作时尽量做到通俗易懂, 但要求读者知道什么是字节,什么是十六进制。 0、big endian 和 little endian big endian 和 little endian 是 CPU 处理多字节数的不同方式。例如“汉”字的 Unicode 编码是 6C49。那么写到文件里时,究竟是将 6C 写在前面,还是将 49 写在前面?如果将 6C 写在前面,就是 big endian。如果将 49 写在前面,就是 little endian。 “endian”这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大 头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,一 个皇帝送了命,另一个丢了王位。 我们一般将endian 翻译成“字节序”,将big endian 和 little endian称作“大尾”和“小 尾”。 1、字符编码、内码,顺带介绍汉字编码 字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内 码。早期的计算机使用 7 位的 ASCII 编码,为了处理汉字,程序员设计了用于 简体中文的 GB2312 和用于繁体中文的 big5。 GB2312(1980 年)一共收录了 7445 个字符,包括 6763 个汉字和 682 个其它符 号。汉字区的内码范围高字节从 B0-F7,低字节从 A1-FE,占用的码位是 72*94=6768。其中有 5 个空位是 D7FA-D7FE。 GB2312 支持的汉字太少。1995 年的汉字扩展规范 GBK1.0 收录了 21886 个符 号,它分为汉字区和图形符号区。汉字区包括 21003 个字符。 从 ASCII、GB2312 到 GBK,这些编码方法是向下兼容的,即同一个字符在这 些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文 和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为 0。按照程 序员的称呼,GB2312、GBK 都属于双字节字符集 (DBCS)。 2000 年的 GB18030 是取代 GBK1.0 的正式国家标准。该标准收录了 27484 个 汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。从汉字字汇 上说,GB18030 在 GB13000.1 的 20902 个汉字的基础上增加了 CJK 扩展 A 的 6582 个汉字(Unicode 码 0x3400-0x4db5),一共收录了 27484 个汉字。 CJK 就是中日韩的意思。Unicode 为了节省码位,将中日韩三国语言中的文字统 一编码。GB13000.1 就是 ISO/IEC 10646-1 的中文版,相当于 Unicode 1.1。 GB18030 的编码采用单字节、双字节和 4 字节方案。其中单字节、双字节和 GBK 是完全兼容的。4 字节编码的码位就是收录了 CJK 扩展 A 的 6582 个汉字。 例 如:UCS 的 0x3400 在 GB18030 中的编码应该

文档评论(0)

l215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档