flowerCSDN 2020-03-27
python发展史:
字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(python2.x 默认ascill;python3.x 默认utf-8)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
关于中文
为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),所以需要转码:
# -*- coding: utf-8 -*- print "hello world"
十进制代码 | 十六进制代码 | MCS 字符或缩写 | DEC 多国字符名 |
ASCII 控制字符 1 | |||
NUL | 空字符 | ||
1 | 1 | SOH | 标题起始 (Ctrl/A) |
2 | 2 | STX | 文本起始 (Ctrl/B) |
3 | 3 | ETX | 文本结束 (Ctrl/C) |
4 | 4 | EOT | 传输结束 (Ctrl/D) |
5 | 5 | ENQ | 询问 (Ctrl/E) |
6 | 6 | ACK | 认可 (Ctrl/F) |
7 | 7 | BEL | 铃 (Ctrl/G) |
8 | 8 | BS | 退格 (Ctrl/H) |
9 | 9 | HT | 水平制表栏 (Ctrl/I) |
10 | 0A | LF | 换行 (Ctrl/J) |
11 | 0B | VT | 垂直制表栏 (Ctrl/K) |
12 | 0C | FF | 换页 (Ctrl/L) |
13 | 0D | CR | 回车 (Ctrl/M) |
14 | 0E | SO | 移出 (Ctrl/N) |
15 | 0F | SI | 移入 (Ctrl/O) |
16 | 10 | DLE | 数据链接丢失 (Ctrl/P) |
17 | 11 | DC1 | 设备控制 1 (Ctrl/Q) |
18 | 12 | DC2 | 设备控制 2 (Ctrl/R) |
19 | 13 | DC3 | 设备控制 3 (Ctrl/S) |
20 | 14 | DC4 | 设备控制 4 (Ctrl/T) |
21 | 15 | NAK | 否定接受 (Ctrl/U) |
22 | 16 | SYN | 同步闲置符 (Ctrl/V) |
23 | 17 | ETB | 传输块结束 (Ctrl/W) |
24 | 18 | CAN | 取消 (Ctrl/X) |
25 | 19 | EM | 媒体结束 (Ctrl/Y) |
26 | 1A | SUB | 替换 (Ctrl/Z) |
27 | 1B | ESC | 换码符 |
28 | 1C | FS | 文件分隔符 |
29 | 1D | GS | 组分隔符 |
30 | 1E | RS | 记录分隔符 |
31 | 1F | US | 单位分隔符 |
ASCII 特殊和数字字符 | |||
32 | 20 | SP | 空格 |
33 | 21 | ! | 感叹号 |
34 | 22 | " | 引号 (双引号) |
35 | 23 | # | 数字符号 |
36 | 24 | $ | 美元符 |
37 | 25 | % | 百分号 |
38 | 26 | & | 和号 |
39 | 27 | ‘ | 省略号 (单引号) |
40 | 28 | ( | 左圆括号 |
41 | 29 | ) | 右圆括号 |
42 | 2A | * | 星号 |
43 | 2B | + | 加号 |
44 | 2C | , | 逗号 |
45 | 2D | -- | 连字号或减号 |
46 | 2E | . | 句点或小数点 |
47 | 2F | / | 斜杠 |
48 | 30 | 零 | |
49 | 31 | 1 | 1 |
50 | 32 | 2 | 2 |
51 | 33 | 3 | 3 |
52 | 34 | 4 | 4 |
53 | 35 | 5 | 5 |
54 | 36 | 6 | 6 |
55 | 37 | 7 | 7 |
56 | 38 | 8 | 8 |
57 | 39 | 9 | 9 |
58 | 3A | : | 冒号 |
59 | 3B | ; | 分号 |
60 | 3C | < | 小于 |
61 | 3D | = | 等于 |
62 | 3E | > | 大于 |
63 | 3F | ? | 问号 |
ASCII 字母字符 | |||
64 | 40 | @ | 商业 at 符号 |
65 | 41 | A | 大写字母 A |
66 | 42 | B | 大写字母 B |
67 | 43 | C | 大写字母 C |
68 | 44 | D | 大写字母 D |
69 | 45 | E | 大写字母 E |
70 | 46 | F | 大写字母 F |
71 | 47 | G | 大写字母 G |
72 | 48 | H | 大写字母 H |
73 | 49 | I | 大写字母 I |
74 | 4A | J | 大写字母 J |
75 | 4B | K | 大写字母 K |
76 | 4C | L | 大写字母 L |
77 | 4D | M | 大写字母 M |
78 | 4E | N | 大写字母 N |
79 | 4F | O | 大写字母 O |
80 | 50 | P | 大写字母 P |
81 | 51 | Q | 大写字母 Q |
82 | 52 | R | 大写字母 R |
83 | 53 | S | 大写字母 S |
84 | 54 | T | 大写字母 T |
85 | 55 | U | 大写字母 U |
86 | 56 | V | 大写字母 V |
87 | 57 | W | 大写字母 W |
88 | 58 | X | 大写字母 X |
89 | 59 | Y | 大写字母 Y |
90 | 5A | Z | 大写字母 Z |
91 | 5B | [ | 左中括号 |
92 | 5C | \ | 反斜杠 |
93 | 5D | ] | 右中括号 |
94 | 5E | ^ | 音调符号 |
95 | 5F | _ | 下划线 |
96 | 60 | ` | 重音符 |
97 | 61 | a | 小写字母 a |
98 | 62 | b | 小写字母 b |
99 | 63 | c | 小写字母 c |
100 | 64 | d | 小写字母 d |
101 | 65 | e | 小写字母 e |
102 | 66 | f | 小写字母 f |
103 | 67 | g | 小写字母 g |
104 | 68 | h | 小写字母 h |
105 | 69 | i | 小写字母 i |
106 | 6A | j | 小写字母 j |
107 | 6B | k | 小写字母 k |
108 | 6C | l | 小写字母 l |
109 | 6D | m | 小写字母 m |
110 | 6E | n | 小写字母 n |
111 | 6F | o | 小写字母 o |
112 | 70 | p | 小写字母 p |
113 | 71 | q | 小写字母 q |
114 | 72 | r | 小写字母 r |
115 | 73 | s | 小写字母 s |
116 | 74 | t | 小写字母 t |
117 | 75 | u | 小写字母 u |
118 | 76 | v | 小写字母 v |
119 | 77 | w | 小写字母 w |
120 | 78 | x | 小写字母 x |
121 | 79 | y | 小写字母 y |
122 | 7A | z | 小写字母 z |
123 | 7B | { | 左大括号 |
124 | 7C | | | 垂直线 |
125 | 7D | } | 右大括号 (ALTMODE) |
126 | 7E | ~ | 代字号 (ALTMODE) |
127 | 7F | DEL | 擦掉 (DELETE) |
控制字符 | |||
128 | 80 | [保留] | |
129 | 81 | [保留] | |
130 | 82 | [保留] | |
131 | 83 | [保留] | |
132 | 84 | IND | 索引 |
133 | 85 | NEL | 下一行 |
134 | 86 | SSA | 被选区域起始 |
135 | 87 | ESA | 被选区域结束 |
136 | 88 | HTS | 水平制表符集 |
137 | 89 | HTJ | 对齐的水平制表符集 |
138 | 8A | VTS | 垂直制表符集 |
139 | 8B | PLD | 部分行向下 |
140 | 8C | PLU | 部分行向上 |
141 | 8D | RI | 反向索引 |
142 | 8E | SS2 | 单移 2 |
143 | 8F | SS3 | 单移 3 |
144 | 90 | DCS | 设备控制字符串 |
145 | 91 | PU1 | 专用 1 |
146 | 92 | PU2 | 专用 2 |
147 | 93 | STS | 设置传输状态 |
148 | 94 | CCH | 取消字符 |
149 | 95 | MW | 消息等待 |
150 | 96 | SPA | 保护区起始 |
151 | 97 | EPA | 保护区结束 |
152 | 98 | [保留] | |
153 | 99 | [保留] | |
154 | 9A | [保留] | |
155 | 9B | CSI | 控制序列引导符 |
156 | 9C | ST | 字符串终止符 |
157 | 9D | OSC | 操作系统命令 |
158 | 9E | PM | 秘密消息 |
159 | 9F | APC | 应用程序 |
其他字符 | |||
160 | A0 | [保留] 2 | |
161 | A1 | ¡ | 反向感叹号 |
162 | A2 | ¢ | 分币符 |
163 | A3 | £ | 英磅符 |
164 | A4 | [保留] 2 | |
165 | A5 | ¥ | 人民币符 |
166 | A6 | [保留] 2 | |
167 | A7 | § | 章节符 |
168 | A8 | ¤ | 通用货币符号 2 |
169 | A9 | © | 版权符号 |
170 | AA | ª | 阴性顺序指示符 |
171 | AB | « | 左角引号 |
172 | AC | [保留] 2 | |
173 | AD | [保留] 2 | |
174 | AE | [保留] 2 | |
175 | AF | [保留] 2 | |
176 | B0 | ° | 温度符 |
177 | B1 | ± | 加/减号 |
178 | B2 | ² | 上标 2 |
179 | B3 | ³ | 上标 3 |
180 | B4 | [保留] 2 | |
181 | B5 | µ | 微符 |
182 | B6 | ¶ | 段落符,pilcrow |
183 | B7 | · | 中点 |
184 | B8 | [保留] 2 | |
185 | B9 | ¹ | 上标 1 |
186 | BA | º | 阳性顺序指示符 |
187 | BB | » | 右角引号 |
188 | BC | ¼ | 分数四分之一 |
189 | BD | ½ | 分数二分之一 |
190 | BE | [保留] 2 | |
191 | BF | ¿ | 反向问号 |
192 | C0 | À | 带重音符的大写字母 A |
193 | C1 | Á | 带尖锐重音的大写字母 A |
194 | C2 | Â | 带音调符号的大写字母 A |
195 | C3 | Ã | 带代字号的大写字母 A |
196 | C4 | Ä | 带元音变音 (分音符号) 的大写字母 A |
197 | C5 | Å | 带铃声的大写字母 A |
198 | C6 | Æ | 大写字母 AE 双重元音 |
199 | C7 | Ç | 带变音符号的大写字母 C |
200 | C8 | È | 带重音符的大写字母 E |
201 | C9 | É | 带尖锐重音的大写字母 E |
202 | CA | Ê | 带音调符号的大写字母 E |
203 | CB | Ë | 带元音变音 (分音符号) 的大写字母 E |
204 | CC | Ì | 带重音符的大写字母 I |
205 | CD | Í | 带尖锐重音的大写字母 I |
206 | CE | Î | 带音调符号的大写字母 I |
207 | CF | Ï | 带元音变音 (分音符号) 的大写字母 I |
208 | D0 | [保留] 2 | |
209 | D1 | Ñ | 带代字号的大写字母 N |
210 | D2 | Ò | 带重音符的大写字母 O |
211 | D3 | Ó | 带尖锐重音的大写字母 O |
212 | D4 | Ô | 带音调符号的大写字母 O |
213 | D5 | Õ | 带代字号的大写字母 O |
214 | D6 | Ö | 带元音变音 (分音符号) 的大写字母 O |
215 | D7 | OE | 大写字母 OE 连字 2 |
216 | D8 | Ø | 带斜杠的大写字母 O |
217 | D9 | Ù | 带重音符的大写字母 U |
218 | DA | Ú | 带尖锐重音的大写字母 U |
219 | DB | Û | 带音调符号的大写字母 U |
220 | DC | Ü | 带元音变音 (分音符号) 的大写字母 U |
221 | DD | Y | 带元音变音 (分音符号) 的大写字母 Y |
222 | DE | [保留] 2 | |
223 | DF | ß | 德语高调小写字母 s |
224 | E0 | à | 带重音符的小写字母 a |
225 | E1 | á | 带尖锐重音的小写字母 a |
226 | E2 | â | 带音调符号的小写字母 a |
227 | E3 | ã | 带代字号的小写字母 a |
228 | E4 | ä | 带元音变音 (分音符号) 的小写字母 a |
229 | E5 | å | 带铃声的小写字母 a |
230 | E6 | æ | 小写字母 ae 双重元音 |
231 | E7 | ç | 带变音符号的小写字母 c |
232 | E8 | è | 带重音符的小写字母 e |
233 | E9 | é | 带尖锐重音的小写字母 e |
234 | EA | ê | 带音调符号的小写字母 e |
235 | EB | ë | 带元音变音 (分音符号) 的小写字母 e |
236 | EC | ì | 带重音符的小写字母 i |
237 | ED | í | 带尖锐重音的小写字母 i |
238 | EE | î | 带音调符号的小写字母 i |
239 | EF | ï | 带元音变音 (分音符号) 的小写字母 i |
240 | F0 | [保留] 2 | |
241 | F1 | ñ | 带代字号的小写字母 n |
242 | F2 | ò | 带重音符的小写字母 o |
243 | F3 | ó | 带尖锐重音的小写字母 o |
244 | F4 | ô | 带音调符号的小写字母 o |
245 | F5 | õ | 带代字号的小写字母 o |
246 | F6 | ö | 带元音变音 (分音符号) 的小写字母 o |
247 | F7 | oe | 小写字母 oe 连字 2 |
248 | F8 | ø | 带斜杠的小写字母 o |
249 | F9 | ù | 带重音符的小写字母 u |
250 | FA | ú | 带尖锐重音的小写字母 u |
251 | FB | û | 带音调符号的小写字母 u |
252 | FC | ü | 带元音变音 (分音符号) 的小写字母 u |
253 | FD | ÿ | 带元音变音 (分音符号) 的小写字母 y 2 |
254 | FE | [保留] 2 | |
255 | FF | [保留] 2 |