求解!那个斜线/是电脑键盘里除号是斜线吗


Unicode 编码规范 先从 ASCII 说起。ASCII 是用来表示英文字符的一种编码规范,每个 ASCII 字符 占用 1 个字节(8bits) 因此,ASCII 编码可以表示的最大字符数是 256,其实英文字符并没有那么多, 一般只用前 128 个(最高位为 0),其中包括了控制字符、数字、大小写字母和 其他一些符号 。 而最高位为 1 的另 128 个字符被成为“扩展 ASCII”,一般用来存放英文的制表 符、部分音标字符等等的一些其他符号 这种字符编码规范显然用来处理英文没有什么问题 。(实际上也可以用来处理 法文、德文等一些其他的西欧字符,但是不能和英文通用),但是面对中文、阿 拉伯文之类复杂的文字,255 个字符显然不够用 于是, 各个国家纷纷制定了自己的文字编码规范,其中中文的文字编码规范叫做 “GB2312-80”,它是和 ASCII 兼容的一种编码规范,其实就是利用扩展 ASCII 没有真正标准化这一点,把一个中文字符用两个扩展 ASCII 字符来表示。 但是这个方法有问题,最大的问题就是,中文文字没有真正属于自己的编码,因 为扩展 ASCII 码虽然没有真正的标准化, 但是 PC 里的 ASCII 码还是 有一个事实 标准的(存放着英文制表符),所以很多软件利用这些符号来画表格。这样的软 件用到中文系统中,这些表格符就会被误认作中文字,破坏版面。而且, 统计 中英文混合字符串中的字数, 也是比较复杂的,我们必须判断一个 ASCII 码是否 扩展,以及它的下一个 ASCII 是否扩展,然后才“猜”那可能是一个中 文字 。 总之当时处理中文是很痛苦的。而更痛苦的是 GB2312 是国家标准,台湾当时有 一个 Big5 编码标准,很多编码和 GB 是相同的,所以??,嘿嘿。 这时候,我们就知道,要真正解决中文问题,不能从扩展 ASCII 的角度入手,也 不能仅靠中国一家来解决。而必须有一个全新的编码系统,这个系统要可 以将 中文、英文、法文、德文??等等所有的文字统一起来考虑,为每个文字都分配 一个单独的编码,这样才不会有上面那种现象出现。 于是,Unicode 诞生了。 Unicode 有两套标准,一套叫 UCS-2(Unicode-16),用 2 个字节为字符编码,另 一套叫 UCS-4(Unicode-32),用 4 个字节为字符编码。 以目前常用的 UCS-2 为例,它可以表示的字符数为 2^16=65535,基本上可以容 纳所有的欧美字符和绝大部分的亚洲字符 。 UTF-8 的问题后面会提到 。

在 Unicode 里,所有的字符被一视同仁。汉字不再使用“两个扩展 ASCII”,而 是使用“1 个 Unicode”,注意,现在的汉字是“一个字符”了,于是,拆字、 统计字数这些问题也就自然而然的解决了 。 但是, 这个世界不是理想的, 不可能在一夜之间所有的系统都使用 Unicode 来处 理字符,所以 Unicode 在诞生之日,就必须考虑一个严峻的问题:和 ASCII 字符 集之间的不兼容问题。 我们知道,ASCII 字符是单个字节的,比如“A”的 ASCII 是 65。而 Unicode 是 双字节的,比如“A”的 Unicode 是 0065,这就造成了一个非常大的问题:以前 处理 ASCII 的那套机制不能被用来处理 Unicode 了 。 另一个更加严重的问题是,C 语言使用'\0'作为字符串结尾,而 Unicode 里恰恰 有很多字符都有一个字节为 0,这样一来,C 语言的字符串函数将无法正常处理 Unicode,除非把世界上所有用 C 写的程序以及他们所用的函数库全部换掉 。 于是,比 Unicode 更伟大的东东诞生了,之所以说它更伟大是因为它让 Unicode 不再存在于纸上,而是真实的存在于我们大家的电脑中。那就是:UTF 。 UTF= UCS Transformation Format UCS 转换格式 它是将 Unicode 编码规则和计算机的实际编码对应起来的一个规则。 现在流行的 UTF 有 2 种:UTF-8 和 UTF-16 。 其中 UTF-16 和上面提到的 Unicode 本身的编码规范是一致的,这里不多说了。 而 UTF-8 不同, 它定义了一种“区间规则”,这种规则可以和 ASCII 编码保持最 大程度的兼容 。 UTF-8 有点类似于 Haffman 编码,它将 Unicode 编码为: 0007F 的字符用单个字节表示; 007FF 的字符用两个字节表示; 0FFFF 的字符用三个字节表示; 因为目前为止 Unicode-16 规范没有指定 FFFF 以上的字符, 所以 UTF-8 最多是使 用 3 个字节来表示一个字符。但理论上来说,UTF-8 最多需要用 6 字节表示一个 字符。 在 UTF-8 里, 英文字符仍然跟 ASCII 编码一样, 因此原先的函数库可以继续使用。 而中文的编码范围是在 0080-07FF 之间,因此是 2 个字节表示(但这两个字节和 GB 编码的两个字节是不同的),用专门的 Unicode 处理类可以对 UTF 编码进行 处理。 下面说说中文的问题。

由于历史的原因,在 Unicode 之前,一共存在过 3 套中文编码标准。 GB2312-80, 是中国大陆使用的国家标准, 其中一共编码了 6763 个常用简体汉字。 Big5,是台湾使用的编码标准,编码了台湾使用的繁体汉字,大概有 8 千多个。 HKSCS,是中国香港使用的编码标准,字体也是繁体,但跟 Big5 有所不同。 这 3 套编码标准都采用了两个扩展 ASCII 的方法,因此,几套编码互不兼容,而 且编码区间也各有不同 因为其不兼容性, 在同一个系统中同时显示 GB 和 Big5 基本上是不可能的。当时 的南极星、RichWin 等等软件,在自动识别中文编码、自动显示正确编码方面都 做了很多努力 。 他们用了怎样的技术我就不得而知了, 我知道好像南极星曾经以同屏显示繁简中 文为卖点。 后来,由于各方面的原因,国际上又制定了针对中文的统一字符集 GBK 和 GB18030,其中 GBK 已经在 Windows、Linux 等多种操作系统中被实现。 GBK 兼容 GB2312,并增加了大量不常用汉字,还加入了几乎所有的 Big5 中的繁 体汉字。但是 GBK 中的繁体汉字和 Big5 中的几乎不兼容。 GB18030 相当于是 GBK 的超集,比 GBK 包含的字符更多。据我所知目前还没有操 作系统直接支持 GB18030。

谈谈 Unicode 编码,简要解释 UCS、UTF、BMP、BOM 等名词 这是一篇程序员写给程序员的趣味读物。 所谓趣味是指可以比较轻松地了解一些 原来不清楚的概念,增进知识,类似于打 RPG 游戏的升级。整理这篇文章的动机 是两个问题: 问题一: 使用 Windows 记事本的“另存为”,可以在 GBK、Unicode、Unicode big endian 和 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。 GB 年)一共收录了 7445 个字符,包括 6763 个汉字和 的正式国家标准。 该标准收录了 27484 个汉字,同时还收录了藏文、 蒙文、维吾尔文等主要的少数民族文 字。现在的 PC 平台必须支持 GB18030,对 嵌入式产品暂不作要求。所以手机、MP3 一般只支持 GB2312。 从 ASCII、GB2312、GBK 到 GB18030,这些编码方法是向下兼容的,即同一个字 符在这些方案中总是有相同的编码,后面的标准支持更多 的字符。在这些编码 中, 英文和中文可以统一地处理。 区分中文编码的方法是高字节的最高位不为 0。 按照程序员的称呼,GB2312、GBK 到 GB18030 都属于双字节字符集 (DBCS)。 有的中文 Windows 的缺省内码还是 GBK,可以通过 GB18030 升级包升级到 GB18030。不过 GB18030 相对 GBK 增加的字符,普通人是很难用到的,通常我们 还是用 GBK 指代中文 Windows 内码。 这里还有一些细节: GB2312 的原文还是区位码,从区位码到内码,需要在高字节和低字节上分别加 上 A0。

在 DBCS 中,GB 内码的存储格式始终是 big endian,即高位在前。 GB2312 的两个字节的最高位都是 1。但符合这个条件的码位只有 128*128=16384 个。所以 GBK 和 GB18030 的低字节最高位都可能 不是 1。不过这不影响 DBCS 字 符流的解析:在读取 DBCS 字符流时,只要遇到高位为 1 的字节,就可以将下两 年前后,双方都认识到世界不需要两个不兼容的字符集。于是它们开始 合并双方的工作成果,并为创立一个单一编码表而协同工作。从 Unicode2.0 开 始,Unicode 项目采用了与 ISO 10646-1 相同的字库和字码。 目前两个项目仍都存在,并独立地公布各自的标准。Unicode 协会现在的最新版 本是 2005 年的 Unicode 4.1.0。ISO 的最新标准是

码,UTF-16 编码就等于 UCS 码对应的 16 位无符号整数。对于不 小于 0x10000 的 UCS 码,定 义了一个算法。 不过由于实际使用的 UCS2,或者 UCS4 的 BMP 必然小于 0x10000, 所以就目前而言,可以认为 UTF-16 和 UCS-2 基本相同。但 UCS-2 只是一个编码 方案,UTF-16 却要用于实际的传输,所以就不得不考虑字节序的问题。 5、UTF 的字节序和 BOM UTF-8 以字节为编码单元,没有字节序的问题。UTF-16 以两个字节为编码单元, 在解释一个 UTF-16 文 本前, 首先要弄清楚每个编码单元的字节序。例如收到一 个“奎”的 Unicode 编码是 594E,“乙”的 Unicode 编码是 4E59。如果我们收 到 UTF-16 字节流“594E”,那么这是“奎”还是“乙”? Unicode

编码是 EF BB BF(读者可以用我们前面介绍的 编码方法验证一下)。所以如果接收者收到以 EF BB BF 开头的字节流,就知道 这是 UTF-8 编码了。 Windows 就是使用 BOM 来标记文本文件的编码方式的。

字符集,或称字集,是指文字的集合;将固定数目的文字编序,以方便作通讯、 教育、资讯处理等用途。 字符集通常有两种, 一是专为电脑资讯处理而设, ASCII、 如: Unicode、 2312、 GB 大五码(Big5)、CNS 11643 等。一是作其他用途的,如教育用的生字表、通讯用 的电报码等。 字符集和编码(Encoding)不同。 字符集只是文字的集合, 不一定适合作网络传送、 Standard Code for Information Interchange,美国信息互 换标准代码) 是基于拉丁字母的一套电脑编码系统。 它主要用于显示现代英语和 其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准 ISO/IEC 646。 ASCII 第一次以规范标准的型态发表是在 1967 年, 最后一次更新则是在 1986 年, 至今为止共定义了 128 个字符,其中 33 个字符无法显示(这是以现今操作系统 为依归,但在 DOS 模式下可显示出一些诸如笑脸、扑克牌花式等 8-bit 符号), 且这 33 个字符多数都已是陈废的控制字符,控制字符的用途主要是用来操控已 经处理过的文字, 33 个字符之外的是 95 个可显示的字符,包含用键盘敲下空 在 白键所产生的空白字符也算 1 个可显示字符(显示为空白)。

名称/意义 空字符(Null) 标题开始 本文开始 本文结束 传输结束 请求 确认回应 响铃 退格 水平定位符号 换行键 垂直定位符号 换页键 归位键 取消变换(Shift out) 启用变换(Shift in) 跳出数据通讯 设备控制一(XON 启用软件速度 控制) 设备控制二

设备控制三(XOFF 停用软件速度 控制) 设备控制四 确认失败回应 同步用暂停 区块传输结束 取消 连接介质中断 替换 跳出 文件分割符 组群分隔符 记录分隔符 单元分隔符 删除

EASCII(Extended ASCII,延伸美国标准信息交换码)是将 ASCII 码由 7 位扩充 为 8 位而成。 EASCII 的内码是由 0 到 255 共有 256 个字符组成。 EASCII 码比 ASCII 码扩充出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号。

分音符 u 分音符 y

注:EASCII 字符快速输入法 Code) 扩增二进式十进 交换码,为 IBM 于 1963 年-1964 年间推出的字符编码表,根据早期打孔机式的 二进化十进数(BCD, Bindary Coded Decimal)排列而成。是 IBM 迷尔级以上电脑 的标准码。 它的缺点是:英文字母不是连续地排列,中间出现多次断续,为撰写程式的人带 来了一些困难。

来表示,以便兼容于 ASCII。 它主要用于表示及储存汉语文字、日语文字及朝鲜文字。


EUC-CN 是 GB 2312 最常用的表示方法。浏览器编码表上的“GB2312”,通常都 是指“EUC-CN”表示法。

JIS X 0208 字符使用两个字节来表示。

JIS X 0212 字符使用三个字节来表示。


EUC-JISX0213 是一个制定中的 EUC 规格,用来表示 JIS X 0213 字集的字符。 半角片假名使用两个字节来表示。
“第一位字节”使用 0x8E “第二位字节”使用 0xA1-0xDF

JIS X 0213 第一字面字符使用两个字节来表示。

JIS X 0213 第二字面字符使用三个字节来表示。


EUC-TW 本来是台湾使用的其中一个汉字储存方法,以 CNS 11643 字表为基础。 但是台湾普遍使用大五码,EUC-TW 甚少使用。 CNS 11643 第一字面的字符使用两个字节来表示。 “第一位字节”使用 0xA1-0xFE “第二位字节”使用 0xA1-0xFE CNS 11643 其他字面的字符使用四个字节来表示。 “第一位字节”使用 0x8E “第二位字节”使用

国家标准代码,简称国标码,是中华人民共和国的中文常用汉字编码集,亦为新 加坡采用。

现时中华人民共和国官方强制使用 GB 18030 标准,但较旧的计算机仍然使用 GB 2312。

较常见的国家汉字标准代码列表

GB 信息技术 通用多八位编码字符集(UCS)第一部分(相当于 ISO 3 中文版)

GB 信息技术 中文编码字符集

其他中华人民共和国发布有关汉字标准代码列表:

GB/T 7589 - 87 信息交换用汉字编码字符集 第二辅助集(又称 GB2)

GB 13131 - 91 信息交换用汉字编码字符集 第三辅助集(又称 GB3)

GB/T 7590 - 87 信息交换用汉字编码字符集 第四辅助集(又称 GB4)

GB 13132 - 91 信息交换用汉字编码字符集 第五辅助集(又称 GB5)

国家推荐标准以 "/T" 来表示并非强制执行。

是繁体字版本,它并无对应的简体字版本。 鉴于第二辅助集及第四辅助集, 有不少汉字均是“类推简化汉字”, 实用性不高, 因而较少人采用,而且没有收入 通用字符集 ISO/IEC 10646 标准中[1]。 中华人民共和国国家标准总局于 2000 年推出强制性的 GB 标准。于 2001 年 8 月 31 日后发布或出厂的产品,必须符合 GB 的相关要求。 这个标准的最新版本是 GB ,它的 2

[编辑] 标准列表(按年份排列)


标准号 名称 别名 汉字 数 6763 备注

信息处理文 本通讯用编 (无) 636 码字符集 第 [2] 二部分 信息交换用 汉字编码字 GB1 符集 第一辅 助集

}

我要回帖

更多关于 电脑键盘里除号是斜线吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信