有关编码的基础知识 windows
1. 位 bit 最小的单元 服务器
字节 byte 机器语言的单位 编码
1byte=8bitsspa
1KB=1024bytecode
1MB=1024KBorm
1GB=1024MBip
2. 二进制 binary ci
八进制 octal unicode
十进制 decimal it
十六进制 hex
3. 字符:是各类文字和符号的总称,包括各个国家的文字,标点符号,图形符 号,数字等。
字符集:字符集是多个符号的集合,每一个字符集包含的字符个数不一样。
字符编码:字符集只是规定了有哪些字符,而最终决定采用哪些字符,每一 个字符用多少字节表示等问题,则是由编码来决定的。计算机要 准确的处理各类字符集文字,须要进行字符编码,以便计算机可以识别和存储各类文字。
常见字符集的编码介绍
常见的字符集有:ASCII 字符集,GB2312 字符集,BIG5 字符集,GB18030 字符集, Unicode 字符集,下面一一介绍:
1. ASCII 字符集:
- 定义: 美国信息互换标准代码,是基于罗马字母表的一套电脑编码系统,主要显示 英语和一些西欧语言,是现今最通用的单字节编码系统。
- 包含内容: 控制字符(回车键,退格,换行键等) 可显示字符(英文大小写,阿拉伯数字,西文符号) 扩展字符集(表格符号,计算符号,希腊字母,拉丁符号)
- 编码方式: 第 0-31 号及 127 号是控制字符或通信专用字符; 第 32-126 号是字符,其中 48-57 号为 0-9 十个阿拉伯数字,65-90 号为 26 个 大写英文字母,97-122 号为 26 个英文小写字母,其他为一些标点符号,运 算符号等。 在计算机存储单元中,一个 ASCII 码值占一个字节(8 个二进制位),最高位 是用做奇偶检验位。【奇偶校验是指:在代码传送的过程当中,用来检验是否 出错的一种方法。】奇偶校验分为奇校验和偶校验。奇校验规定:正确的代 码一个字节中 1 的个数必须是奇数,若非奇数,则在最高位添 1;偶校验规 定:正确的代码一个字节中 1 的个数必须是奇数,若非奇数,则在最高位添 1。
2. GB2312 字符集:
- 定义: 信息交换用汉字编码字符集。是中国标准的简体中文字符集,它所收录的汉 字已经覆盖 99.75%的使用频率,在中国大陆和新加坡普遍使用。
- 包含内容: GB2312 收录了简化汉字及通常字符,序号,数字,拉丁字母,日文假名, 希腊字母,俄文字母,汉语拼音符号,汉语注音字母,共 7445 个图形字符。 其中包括 6763 个汉字,一级汉字 3755 个,二级汉字 3008 个。
- 编码方式: GB2312 对所收汉字进行了“分区”处理,每区含有 94 个汉字或者符号,这 种表示方法也叫作“区位码”。 它是用双字节表示的,前面的字节为第一字节,又称“高字节”,后面的为 第二字节,“低字节”。 高位字节,把 01-87 区的区号加上 0xA0(至关于数字 160);低位字节把 01-94 区的区号加上 0xA0(至关于数字 160)。 举个简单的小例子:第一个汉字— —“啊”,它的区号为 16,位号 01,则区位码是 1601。则高字节位: 16+0xA0=0xB0;低字节位:01+0xA0=0xA1,因此“啊”的汉字处理编码为 0xB0A1。
3. GBK 字符集:
- 定义: GBK 是 GB2312 字符集的扩展(K)(中国的中文编码表升级,融合了更多的 中文文字符号。),它收录了 21886 个符号,它分为汉字区和图形符号区, 汉字区包括 21003 个字符。GBK 字符集主要扩展了繁体中文字的支持。
4. BIG5 字符集:
- 定义: 又称大五码,由台湾五家软件公司创立。由于当时台湾没有一个标准的字符 集,并且 GB2312 又没有收录繁体字,因此才推出了 BIG5。 包含内容: BIG5 字符集共收录了 13053 个中文字,该字符集在台湾使用。可是没有考虑 到社会上流通的人名,地方用字,方言用字,化学及生物科等用字,没有包 含日文平假名及片假字母。
- 编码方式: BIG5 也采用双字节存储方法,一两个字节编码一个字。高位字节的编码范围 是 0xA1-0xF9,低位字节的编码范围是 0xA1-0xFE。
5. GB18030 字符集:
- 定义: GB18030 字符集标准解决汉字,日文假名,朝鲜语和中国少数民族文字组成 的大字符集计算机编码问题。 包含内容: 该标准的字符总编码空间超过 150 万个编码位,收录了 27484 个汉字,覆盖中文,日文,朝鲜语和中国少数民族文字。知足中国大陆,香港,台湾,日 本和韩国等东南亚地区信息交换多文种,大字量,多用途,统一编码格式的 要求。
- 编码方式: GB8030 标准采用单字节,双字节和四字节三种方式对字符编码。 单字节部 分使用 0x00-0x7F 码(对应于 ASCII 码的相应码); 双字节部分,首字节码从 0x81-0xFE,尾字节码分别是 0x40-0x7E 和 0x80-0xFE。 四字节部分采用 0x30-0x39 做为双字节编码扩充的后缀,这样扩充的四字节 编码,其范围是 0x81308130-0x0xFE39FE39,其中第一,三个字节编码位均为 0x81-0xFE,第二,四个为 0x30-0x39。
6. ISO8859-1:拉丁码表。欧洲码表用一个字节的 8 位表示。
7. Unicode 字符集:
- 定义: (国际标准码,融合了多种文字。全部文字都用两个字节来表示,Java 语言使用的就是 unicode) University multiple-object coded character set(通用多 八位编码字符集),支持世界上超过 650 种语言的国际字符。Unicode 容许在 同一服务器上混合使用不一样语言,它为每种语言的每一个字符设定了统一而且 惟一的二进制编码,以知足跨平台,跨语言进行文本转换,处理的要求。
- 编码方式: Unicode 标准始终使用十六进制数字,固定使用 2 个字节来表示一个字符, 共能够表示 65536 个字符。并且书写时在前面加上前缀“U+”,例如 A 的编 码是 004116,则书写成“U+0041”。
- Unicode 字符集包含的编码方案:
- UTF-8: (最多用三个字节来表示一个字符。) UTF8 是 unicode 其中的一个使用方式。UTF 的意思是: unicode translation format,即把 unicode 转做某种格式的意思。UTF-8 使用可变长度字节来存储 unicode 字符,如 ASCII 字母仍是采用一个 字符来存储,希腊字母等采用 2 个字符来存储,而经常使用的汉字要使 用 3 字节,辅助平面字符则使用 4 字节。
- UTF-16: 使用一个或两个未分配的 16 位代码单元的序列对 unicode 代码 点进行编码,即 2 个字节表示一个字符。
- UTF-32: 将每个 unicode 代码点表示为相同值的 32 位整数。
- 关于 unicode 编码的一个问题: 使 用 记 事 本 另 存 为 时 , 可 以 在 ANSI , GBK,Unicode , unicode big endian 和 UTF-8 这几种编码之间相互转换。一样是 txt 文 件,windows 是怎么识别编码的呢? 答:平时注意的话能够发现 Unicode,unicode big endian 和 UTF-8 编码的 txt 文件的开头会多出几个字节,分别是(FF,FE),(FE,FF), (EF,BB,BF)。那么这些标记都是基于什么标准呢?
ANSI 字符集:ASCII 字符集,以及由此派生并兼容的字符集。 UTF-16 与 UTF-8:如“连通”两个字,在 UTF-16 中为:DE 8F 1A 90, 两个字节决定一个汉字;在 UTF-8 中则为:E8 BF 9E E9 80 9A,即 3 个字节决定一个字符。 当一个软件打开一个文本时,首先是要决定这个文本到底是使用 哪一种字符集的哪一种编码保存的,软件通常采用三种方式来决定文本 的字符集和编码:检测文件头标识,提示用户选择,根据必定的规 则猜想。不一样编码方式的开头字节以下: EF BB BF UTF-8 FF FE UTF-16,little endian FE FF UTF-16,big endian FF FE 00 00 UTF-32, little endian 00 00 FE FF UTF-32,big endian 注:endian 是指字节序,big endian(大尾)和 little endian(小 尾)是 CPU 处理多字节数的不一样方式。例如“汉”的 unicode 编码 是 6C49,写到文件中,若是将 6C 写在前面就是 big endian,将 49 写在前面就是 little endian。
总结
从 ASCII,GB2312,GBK 到 GB18030,这些编码方法是向下兼容的,即同一 个字符在这些方案中老是有相同的编码,后面的标准支持更多的字符。在这些编 码中,英文和中文能够统一的处理。区分中文编码的方法是高字节的最高位不为 0。
计算机使用的缺省编码方式就是计算机的内码。有的中文 windows 的缺省内 码仍是 GBK,能够经过 GB18030 升级包升级到 GB1030。不过相对 GBK 新增的字 符,普通人很难用到的,一般咱们用 GBK 来指代中文 windows 内码。 GB2312 的原文是区位码,从区位码到内码,须要在高字节和低字节上分别 加上 A0。
本文由“云端木瓜”整理总结,转载请注明出处
This article from the "云端木瓜" finishing summary, reproduced please indicate the source.