XiaoXiao_计算机字符编码(字集码)笔记

字符编码(英语:Character encoding)

我个人认为字符编码观点(不做规范参考):

        众所周知,机器语所有的信息最终都是一个二进制串,每一个二进制位(bit)01两种状态表示。

        而字符编码是为方便对每个字符信息一个集合体,以便于编程人员的对字符显示后期处理。为了方便在不同平台的信息传递的准确性,所以产生统一字符编码的规范编码。

字符编码简介(信息来至百度百科):
        字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

        在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为标准。但这些字符集的局限很快就变得明显,于是人们开发了许多方法来扩展它们。对于支持包括东亚CJK字符家族在内的写作系统的要求能支持更大量的字符,并且需要一种系统而不是临时的方法实现这些字符的编码。

字符编码:
字符编码
编码名称 字节数 范围 时间 说明
ASCII

(1 byte) 

00 - 7F

1961 年提出

1967 年发表

1967 年完善

      这套编码规则是由美国定制,一共规定了128个字符的编码,其中有 96 个可打

字符,包括常用的字母、数字、标点符号等,另外包括 32 个控制字符。

        0~31 控件字符 48~57 为数字 65~90 97~122 分别为大写字母和小写字母 相差32

ISO-8859-1

EBCDIC

(1 byte)

00 - FF

1964 年

        这套编码规则由ISO组织制定,是 ASCII 的扩展字符编码,是对 ASCII 后 127~255

范围进行编码。

ANSI

MBCS

(2 byte)

0000-FFFF

 

        无论是ASCII码还是ISO-8859-1码,都无法对拥有几万个的汉字进行编码,于是产生

了用于显示本国语言,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5,

 JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称

ANSI 编码在简体中文系统下,ANSI 编码代表 GB-2312 编码,在日文操作系统下,

ANSI 编码代表 JIS 编码。

GB-2312

GB-2312-80

(2 byte)

A1A1-FEFE

1980 年发布

1981 年使用

        GB2312也是ANSI编码里的一种,对ANSI编码最初始的ASCII编码进行扩充,为了满

足国内在计算机中使用汉字的需要,中国国家标准总局发布了一系列的汉字字符集国家标

准编码,统称为GB码,或国标码。

GB K

(2 byte)

8140-FEFE

 

        GBK即汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。英文全称(Chinese

 Internal Code Specification)。GBK编码标准兼容GB2312,共收录汉字21003个、符号

883个,并提供1894个造字码位,简、繁体字融于一库

GB-18030 (1~4 byte) 2000 年发布

        GB18030全称汉字内码扩展规范,是现在最新的内码字集于2000年发布,并于200

1年强制执行,包含了中国大部分少数民族的语言字符,收录汉字数超过70000余个

Big-5

(2 byte)

8140-FEFE

1984 年发布

        由台湾五大厂商宏碁、神通、佳佳、零壹以及大众一同制定了一种繁体中文编码方

案,因其来源被称为五大码,英文写作Big5,后来按英文翻译回汉字后,普遍被称为

五码。是在台湾、香港与澳门地区,使用的是繁体中文字符集。

Unicode

(2 byte)

0000-FFFF

 

        所有字符都转为16位。为了解决各国字符编码的兼容性,称为万国码。缺点效率不

高,浪费内存。

UTF-16 (2 byte)  

        UTF-16是UNICODE的具体实现,16即16位,UTF-16即是这个来由,定义了

UNICODE字符在计算机中的存储方式,UTF-16同样使用了两个字节来表示任何字符,

这样使得操作字符串非常高效,这也是java把UTF-16作为字符在内存中存储的格式的

重要原因。

UTF-8 (1~6 byte)  

        优化 Unicode ,UTF-16可以根据不同的符号自动选择编码的长短。比如英文字母可

以只用1个字节就够了。

UTF-7      
       

ASCII 码表

Bin

(二进制)

Dec

(十进制)

Hex

(十六进制)

缩写/字符     字    符    

Bin

(二进制)

Dec

(十进制)

Hex

(十六进制)

缩写 字符
0000 0000 0 00 NULL 空字符 0000 0000 69 45 E 大写字母E
0000 0001 1 01

SOH

标题开始 0000 0000 70 46 F 大写字母F
0000 0010 2 02

STX

正文开始 0100 0111 71 47 G 大写字母G
0000 0011 3 03

ETX

正文结束 0100 1000 72 48 H 大写字母H
0000 0100

4

04

EOT

传输结束 0100 1001 73 49 I 大写字母I
0000 0101 5 05

ENQ

请求 0100 1010 74 4A J 大写字母J
0000 0110 6 06

ACK

收到通知 0100 1011 75 4B K 大写字母K
0000 0111 7 07

BEL

响铃 0100 1100 76 4C L 大写字母L
0000 1000 8 08

BS

退格 0100 1101 77 4D M 大写字母M
0000 1001 9 09

HT

水平制表符 0100 1110 78 4E N 大写字母N
0000 1010 10 0A

LF

换行键 0100 1111 79 4F O 大写字母O
0000 1011 11 0B

TV

垂直制表符 0101 0000 80 50 P 大写字母P
0000 1100 12 0C

FF

换页建 0101 0001 81 51 Q 大写字母Q
0000 1101 13 0D

CR

回车键 0101 0010 82 52 R 大写字母R
0000 1110 14 0E

SO

不用切换 0101 0011 83 53 S 大写字母S
0000 1111 15 0F

SI

启动切换 0101 0100 84 54 Y 大写字母Y
0001 0000 16 10

DLE

数据链路转义 0101 0101 85 55 U 大写字母U
0001 0001 17 11

DC1

设备控制1 0101 0110 86 56 V 大写字母V
0001 0010 18 12

DC2

设备控制2 0101 0111 87 57 W 大写字母W
0001 0011 19 13

DC3

设备控制3 0101 1000 88 58 X 大写字母X
0001 0100 20 14

DC4

设备控制4 0101 1001 89 59 Y 大写字母Y
0001 0101 21 15

NAK

拒绝接收 0101 1010 90 5A Z 大写字母Z
0001 0110 22 16

SYN

同步空闲 0101 1011 91 5B [ 开方括号
0001 0111 23 17

ETB

结束传输块 0101 1100 92 5C \ 反斜杠
0001 1000 24 18

CAN

取消 0101 1101 93 5D ] 闭方括号
0001 1001 25 19

EM

媒介结束 0101 1110 94 5E ^ 脱字符
0001 1010 26 1A

SUB

代替 0101 1111 95 5F _ 下划线
0001 1011 27 1B

ESC

换码(溢出) 0110 0000 96 60 ` 开单引号
0001 1100 28 1C

FS

文件分隔符 0110 0001 97 61 a 小写字母a
0001 1101 29 1D

GS

分组符 0110 0010 98 62 b 小写字母b
0001 1110 30 1E

RS

记录分隔符 0110 0011 99 63 c 小写字母c
0001 1111 31 1F

US

单元分隔符 0110 0100 100 64 d 小写字母d
0010 0000 32 20

(space)

空格 0110 0101 101 65 e 小写字母e
0010 0001 33 21 ! 叹号 0110 0110 102 66 f 小写字母f
0010 0010 34 22 " 双引号 0110 0111 103 67 g 小写字母g
0010 0011 35 23 # 井号 0110 1000 104 68 h 小写字母h
0010 0100 36 24 $ 美元号 0110 1001 105 69 i 小写字母i
0010 0101 37 25 % 百分号 0110 1010 106 6A j 小写字母j
0010 0110 38 26 & 和号 0110 1011 107 6B k 小写字母k
0010 0111 39 27 ' 闭单引号 0110 1100 108 6C l 小写字母l
0010 1000 40 28 ( 开括号 0110 1101 109 6D m 小写字母m
0010 1001 41 29 ) 闭括号 0110 1110 110 6E n 小写字母n
0010 1010 42 2A * 星号 0110 1111 111 6F o 小写字母o
0010 1011 43 2B + 加号 0111 0000 112 70 p 小写字母p
0010 1100 44 2C , 逗号 0111 0001 113 71 q 小写字母q
0010 1101 45 2D - 减号/破折号 0111 0010 114 72 r 小写字母r
0010 1110 46 2E . 句号 0111 0011 115 73 s 小写字母s
0010 1111 47 2F / 斜杠 0111 0100 116 74 t 小写字母t
0011 0000 48 30 0 数字0 0111 0101 117 75 u 小写字母u
0011 0001 49 31 1 数字1 0111 0110 118 76 v 小写字母v
0011 0010 50 32 2 数字2 0111 0111 119 77 w 小写字母w
0011 0011 51 33 3 数字3 0111 1000 120 78 x 小写字母x
0011 0100 52 34 4 数字4 0111 1001 121 79 y 小写字母y
0011 0101 53 35 5 数字5 0111 1010 122 7A z 小写字母z
0011 0110 54 36 6 数字6 0111 1011 123 7B { 开花括号
0011 0111 55 37 7 数字7 0111 1100 124 7C | 垂线
0011 1000 56 38 8 数字8 0111 1101 125 7D } 闭花括号
0011 1001 57 39 9 数字9 0111 1110 126 7E ~ 波浪线
0011 1010 58 3A : 冒号 0111 1111 127 7F DEL 删除
0011 1011 59 3B ; 分号
0011 1100 60 3C < 大于
0011 1101 61 3D = 等号
0011 1110 62 3E > 小于
0011 1111 63 3F ? 问号
0100 0000 64 40 @ 电子邮件符号
0100 0001 65 41 A 大写字母A
0100 0010 66 42 B 大写字母B
0100 0011 67 43 C 大写字母C
0100 0100 68 44 D 大写字母D


ISO-8859-1 表码
ISO-8859-1 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
00 ~ 7 F 区间 为 ASCII 编码  Hex:00 ~ 7 F Dec:000 ~ 127
80 ~ 9 F 区间 null                  Hex:80 ~ 9 F Dec:128 ~ 159
A 0~ AF 区间 SP ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬   ® ¯
Dec 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
B 0~ BF 区间 ° ± ² ³ ´ µ · ¸ ¹ º » ¼ ½ ¾ ¿
Dec 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
C 0~ CF 区间 À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
Dec 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
D 0~ DF 区间 Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
Dec 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
E 0~ EF 区间 à á â ã ä å æ ç è é ê ë ì í î ï
Dec 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
F 0~ FF 区间 ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
Dec 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
                                 
GB 2312:使用地区中国内陆常用字符编码类型。编码范围是 A1A1-FEFE。

        GB2312编码是第一个汉字编码国家标准,由中国国家标准总局1980年发布,1981年5月1日开始使用。GB2312编码共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。同时,GB2312编码收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。各区具体说明如下:更详细信息:点击这里

        GB2312规定对收录的每个字符采用两个字节表示,第一个字节为“高字节”,对应94个区;第二个字节为“低字节”,对应94个位。所以它的区位码范围是:0101-9494。区号和位号分别加上0xA0就是GB2312编码。例如最后一个码位是9494,区号和位号分别转换成十六进制是5E5E,0x5E+0xA0=0xFE,所以该码位的GB2312编码是FEFE。

        GB2312编码范围: A1A1-FEFE,其中 汉字的编码范围为 B0A1-F7FE,第一字节0xB0-0xF7(对应区号:Dec:16-87),第二个字节0xA1-0xFE(对应位号:Dec:01-94)。

A1A1-A9FE  01 - 09 区收录除汉字外的682个字符,有164个空位(9 * 94 - 682)。
AAA1-AFFE  10 - 15 区为空白区,没有使用。
B0A1-D7FE  16 - 55 区收录3755个一级汉字 ( 简体 ),按拼音顺序排序。
D8A1-F7FE  56 - 87 区收录3008个二级汉字 ( 简体 ),按部首/笔画顺序排序。

F8A1-FEFE  88 - 94 区为空白区,没有使用。

所以每区存在空白区 是: 在十六进制中 00-A0 区域是空白的 使用区位是 A1-FE

区,位转换流程图具体:请点击这里查看

BIG 5 (大五码):港码 注意:BIG5编码与GBK编码冇有什么关系。

        BIG 5 是繁体中文字符集编码标准,共收录13060个中文字,其中有二字为重复编码。分别:(A461及C94A)(DCD1及DDFC)。

        BIG5采用双字节编码,使用两个字节来表示一个字符。高位字节使用了0x81-0xFE,低位字节使用了0x40-0x7E,及0xA1-0xFE。在BIG5的分区中:更详细信息:点击这里

分布信息如下:
        8140-A0FE     保留给使用者自定义字符(造字区)
        A140-A3BF    标点符号、希腊字母及特殊符号。其中在 A259-A261 收录了繁体度量衡单位用字:兙兛兞兝兡兣嗧瓩糎。
        A3C0-A3FE    保留。此区没有开放作造字区用。
        A440-C67E    
常用汉字,先按笔划再按部首排序。
        C6A1-F9DC   其它汉字。

        F9DD-F9FE    制表符。

GB K 是对 GB 2312 的扩展。范围是8140 - FEFE。
        注意:GBK 对 GB 2312 是兼容的 ,因此用GB K对GB-2312解码是可以的哟。

        GBK 亦采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。

分布信息如下:更详细信息:点击这里

位    _ 代表每区的值 列 81和88区各A1-FE位(范围) 可写成 81-88 _A1-FE
8 1 - A 0   8140-813F,82-A0 _00-3F > NULL  
_40-FE 收录 GB 13000.1 中的 CJK 汉字 6080 个。  
A 1 - A 7 _00-A0 null(自定义)  

_A1-FE (A100-A9FE) 收录GB2312 所有图形字符,以及小罗马和GB12345累计符号 717 个。

 
A 8 - A 9 _00-3F null  

_40-A0 收录 BIG 5 非汉字字符 共166个 字符“〇”排于此

 

_A1-FE (A1A1-A9FE) 收录GB2312 所有图形字符,以及小罗马和GB12345累计符号 717 个。

 
A A - A F

_00-3F null

 
_40-A0 (AA40-FEFE)收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列;

增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。

 

_A1-FE null(自定义)

 
B 0 - F 7

_00-3F null

 
_40-A0 (AA40-FEFE)收录 CJK 汉字和增补的汉字 8160 个。  
_40-A0 (AA40-FEFE)收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列;
增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。
 
F 8 - F E _00-3F null  
_40-A0 (AA40-FEFE)收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列;
增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。
 
_A1-FE null(自定义)  
Uincode (万国码) ...后续更新




猜你喜欢

转载自blog.csdn.net/moguanxiao/article/details/80877129