oem字符集(DOC可编).docVIP

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

ASIIC Unicode oem字符集 ASCII 码 7 位(00~7F)。 32 ~ 127 表示字符。32 是空格, 32 以下是控制字符(不可见)。 第8位没有被使用。全世界很多人同时对这个位的含义发展了不同的用处。比如 IBM PC 中的 OEM 字符集。 最后就 128 位以下的用处达成共识,制定了 ASCII 标准。 而 128 位以上的可能有不同的解释,这些不同的解释就叫做 code pages. 甚至有用于在同一台电脑上解释多种语言的 code page. 同时,在亚洲发生了更加疯狂的事情。亚洲语言的字符集通常数以千计, 8 位已经不足以表达,这通常用一种 很凌乱的,叫做 DBCS(双字节字符集,double byte character set) 的系统来解决。 这种系统中,有些字符占用 1 字节,有些 2 字节。这样一来,在字符串中向前解析很容易,而倒退却很麻烦。 程序员们被建议,不要使用 s++ 或 s-- 来前进和后退,而使用一些函数,比如 Windows 的 AnsiNext 和 AnsiPrev. 因为这些函数知道是怎么回事。 这些不同的假设(code page)在单个的机器上没有问题。而随着 Internet 的发展,字符串要从一个机器上移到 另一个机器上,这就产生了问题。于是, Unicode 出现了。 Unicode Unicode 是一个勇敢的成就。它把在这个星球上的每一个合理的文字系统整合成了一个单一的字符集。 很多人还存在这样的误解: Unicode 仅仅是 16 位的这么简单,每个字符占 16 位,所以一共有 65536 个可能的字符。 然而,这是错误的。不过不要紧,因为这是大部分人都会犯的一个普遍的错误。 实际上,Unicode 理解字符的方式是截然不同的,而这是我们必须了解的。 到目前为止,我们都曾经认为:一个字符对应到一些在磁盘上或内存中储存的位(bits). 如: A - 0100 0001 而在 Unicode 中, 一个字符实际上对应一种叫做 code point 的东西。 比如 A 这个字符,是抽象的(原文:platonic,柏拉图式的,理想的)一个概念。 无论是 Times New Roman 或者 Helvetica 或者其他的什么字体中,都代表同一个字符。但是它和小写的字母 a 不同。 但是在其他的语言,比如希伯莱语(Hebrew) 或者德语(German), 阿拉伯语(Arabian) 中,同一个字母的不同的字形代表的含义是否 相同,是有争议的。经过长时间的争论,这些也终于被确定了。 每一个字母表中的每一个抽象的字母,都被赋予了一个数字,比如 U+0645. 这个叫做 code point. U+ 表示: Unicode, 数字是 16 进制的。 你可以通过 charmap 命令来查看所有这些编码。(Windows 2000/XP 中). 或者访问 Unicode 的网站() Unicode 中 code point 的数字的大小是没有限制的,而且也早就超过了 65535. 所以不是每个字符都能存储在两个字节中。 那么,一个字符串 Hello, 在 Unicode 中会表示成 5 个 code points : ?? U+0048 U+0065 U+006C U+006C U+006F 只不过是一些数字。但我们现在还没有提到如何在磁盘或者 Email 中表示这些信息,这就是我们下面要提到的编码(Encoding) 干的事情。 Encodings (编码) 最初的 Unicode Encoding, 使用两个字节表示一个字符。那么 Hello 表示为: ?? 00 48 00 65 00 6C 00 6C 00 6F 实际上,还有一种表示方式: ?? 48 00 65 00 6C 00 6C 00 6F 00 到底高位字节在前还是低位字节在前面,是两种不同的模式。这要看特定的 CPU 在何种模式下工作的更快。 所以这两种都有。 这就有了两种不同的 Unicode 表示方式了,为了区分,人们又采用了一种奇异的方式: 在每一个 Unicode 字符串的前面,加上 FEFF (这称为 Unicode 字节顺序标志,Unicode Byte Order Mark). 如果你交换高位和低位次序,那么会加上一个 FFFE. 这样,读这个字符串的人才知道要对每两个相邻的字节进行交换。 但在最初的时候,并不是每一个 Unicode 字符串都有这个标志的。 这看起来很不错。可程序员们开始抱怨了,“看看那些零!”。因为有些是美国人,他们使用英语。而英语中很少需要使用 U+00FF 以上的 字符, 有些人无法忍受采用双倍的存储空间来存储每个字符。 基于这些原因,很多人决定忽视

文档评论(0)

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

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

1亿VIP精品文档

相关文档