编码(信息交换标准代码)
编码的由来:
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示 1 和 0 )。例如,像 a、b、c、d 这样的 52 个字母(包括大写)以及 0、1 等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示。
具体用哪些二进制数字表示哪个对应的符号,每个人都可以约定自己的一套(这就叫编码)。而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则。
编码格式的介绍:
ASCII码:
它用 7 个二进制位来表示,由于那个时期生产的大多数计算机使用 8 位大小的字节,因此用户不仅可以存放所有 可能的ASCII字符,而且有整整一位空余下来。如果你技艺高超,可以将该位用做自己离奇的目的。ASCII第一次以规范标准的类型发表是在 1967年,最后一次更新则是在 1986年,到目前为止共定义了 128个字符。
作用: 表语英语及西欧语言。
位数: ASCII是用 7位表示的,能表示 128个 字符;其扩展使用 8位表示,表示 256个字符。
范围: ASCII从00到7F,扩展从00到FF。
一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。
ASCII 可打印的字符
字符 | 编号 | 描述 |
---|---|---|
32 | 空格(space) | |
! | 33 | 感叹号(exclamation mark) |
" | 34 | 引号(quotation mark) |
# | 35 | 数字符号(number sign) |
$ | 36 | 美元符号(dollar sign) |
% | 37 | 百分比符号(percent sign) |
& | 38 | & 符号(ampersand) |
' | 39 | 撇号(apostrophe) |
( | 40 | 左括号(left parenthesis) |
) | 41 | 右括号(right parenthesis) |
* | 42 | 星号(asterisk) |
+ | 43 | 加号(plus sign) |
, | 44 | 逗号(comma) |
- | 45 | 连字符(hyphen) |
. | 46 | 句号(period) |
/ | 47 | 斜线(slash) |
0 | 48 | 数字 0 |
1 | 49 | 数字 1 |
2 | 50 | 数字 2 |
3 | 51 | 数字 3 |
4 | 52 | 数字 4 |
5 | 53 | 数字 5 |
6 | 54 | 数字 6 |
7 | 55 | 数字 7 |
8 | 56 | 数字 8 |
9 | 57 | 数字 9 |
: | 58 | 冒号(colon) |
; | 59 | 分号(semicolon) |
< | 60 | 小于号(less-than) |
= | 61 | 等于号(equals-to) |
> | 62 | 大于号(greater-than) |
? | 63 | 问号(question mark) |
@ | 64 | @ 符号(at sign) |
A | 65 | 大写字母 A |
B | 66 | 大写字母 B |
C | 67 | 大写字母 C |
D | 68 | 大写字母 D |
E | 69 | 大写字母 E |
F | 70 | 大写字母 F |
G | 71 | 大写字母 G |
H | 72 | 大写字母 H |
I | 73 | 大写字母 I |
J | 74 | 大写字母 J |
K | 75 | 大写字母 K |
L | 76 | 大写字母 L |
M | 77 | 大写字母 M |
N | 78 | 大写字母 N |
O | 79 | 大写字母 O |
P | 80 | 大写字母 P |
Q | 81 | 大写字母 Q |
R | 82 | 大写字母 R |
S | 83 | 大写字母 S |
T | 84 | 大写字母 T |
U | 85 | 大写字母 U |
V | 86 | 大写字母 V |
W | 87 | 大写字母 W |
X | 88 | 大写字母 X |
Y | 89 | 大写字母 Y |
Z | 90 | 大写字母 Z |
[ | 91 | 左方括号(left square bracket) |
\ | 92 | 反斜线(backslash) |
] | 93 | 右方括号(right square bracket) |
^ | 94 | 插入符号(caret) |
_ | 95 | 下划线(underscore) |
` | 96 | 重音符(grave accent) |
a | 97 | 小写字母 a |
b | 98 | 小写字母 b |
c | 99 | 小写字母 c |
d | 100 | 小写字母 d |
e | 101 | 小写字母 e |
f | 102 | 小写字母 f |
g | 103 | 小写字母 g |
h | 104 | 小写字母 h |
i | 105 | 小写字母 i |
j | 106 | 小写字母 j |
k | 107 | 小写字母 k |
l | 108 | 小写字母 l |
m | 109 | 小写字母 m |
n | 110 | 小写字母 n |
o | 111 | 小写字母 o |
p | 112 | 小写字母 p |
q | 113 | 小写字母 q |
r | 114 | 小写字母 r |
s | 115 | 小写字母 s |
t | 116 | 小写字母 t |
u | 117 | 小写字母 u |
v | 118 | 小写字母 v |
w | 119 | 小写字母 w |
x | 120 | 小写字母 x |
y | 121 | 小写字母 y |
z | 122 | 小写字母 z |
{ | 123 | 左花括号(left curly brace) |
| | 124 | 竖线(vertical bar) |
} | 125 | 右花括号(right curly brace) |
~ | 126 | 波浪线(tilde) |
ASCII 设备控制字符
ASCII 控制字符(00-31,加上 127)最初被设计用来控制诸如打印机和磁带驱动器之类的硬件设备。
控制字符(除了水平制表符、换行、回车之外)在 HTML 文档中不起任何作用。
字符 | 编号 | 描述 |
---|---|---|
NUL | 00 | 空字符(null character) |
SOH | 01 | 标题开始(start of header) |
STX | 02 | 正文开始(start of text) |
ETX | 03 | 正文结束(end of text) |
EOT | 04 | 传输结束(end of transmission) |
ENQ | 05 | 请求(enquiry) |
ACK | 06 | 收到通知/响应(acknowledge) |
BEL | 07 | 响铃(bell) |
BS | 08 | 退格(backspace) |
HT | 09 | 水平制表符(horizontal tab) |
LF | 10 | 换行(line feed) |
VT | 11 | 垂直制表符(vertical tab) |
FF | 12 | 换页(form feed) |
CR | 13 | 回车(carriage return) |
SO | 14 | 不用切换(shift out) |
SI | 15 | 启用切换(shift in) |
DLE | 16 | 数据链路转义(data link escape) |
DC1 | 17 | 设备控制 1(device control 1) |
DC2 | 18 | 设备控制 2(device control 2) |
DC3 | 19 | 设备控制 3(device control 3) |
DC4 | 20 | 设备控制 4(device control 4) |
NAK | 21 | 拒绝接收/无响应(negative acknowledge) |
SYN | 22 | 同步空闲(synchronize) |
ETB | 23 | 传输块结束(end transmission block) |
CAN | 24 | 取消(cancel) |
EM | 25 | 已到介质末端/介质存储已满(end of medium) |
SUB | 26 | 替补/替换(substitute) |
ESC | 27 | 溢出/逃离/取消(escape) |
FS | 28 | 文件分隔符(file separator) |
GS | 29 | 组分隔符(group separator) |
RS | 30 | 记录分隔符(record separator) |
US | 31 | 单元分隔符(unit separator) |
DEL | 127 | 删除(delete) |
UTF-8:
UTF:UCS Transformation Format.考虑到 unicode编码不兼容iso8859-1编码,而且容易占用更多的空间。
因为对于英文字母,unicode也需要两个字节来表 示。所以unicode不便于传输和存储。因此而产生了utf编码。
utf编码兼容iso8859-1编码,同时也可以用来表示所有语言的字符,
utf编码是不定长编码,每一个字符的长度从1-6个字节不等。
另外utf编码自带简单的校验功能。一般来讲,英文字母都是用一个字节表示,而汉字 使用三个字节。
注意,虽然说utf是为了使用更少的空间而使用的,但那只是相对于unicode编码来说,如果已经知道是汉字,则使用GB2312/GBK无疑是 最节省的。
不过另一方面,值得说明的是,虽然 utf编码对汉字使用3个字节,但 即使对于汉字网页,utf编码也会比 unicode编码节省,因为网页中包 含了很多的英文字符。
作用:unicode不便于传输和存储。utf 英文字节少便于传输。满足万恶的资本主义
位数:8位
范围:兼容iso8859-1编码,用来表示所有语言的字符
英文 占用一个字节,中文占用三个字节
UTF8编码后的大小是不一定,例如 一个英文字母"a" 和 一个汉字 “好”,编码后占用的空间大小就不样了,前者是一个字节,后者是三个字节!编码的方法是从低位到高位。黄色为标志位其它着色为了显示其,编码后的位置。
UTF-8编码规则: 如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。UTF-8转换表表示如下:
GBK 编码标准:
《汉字内码扩展规范》(GBK) 于1995年制定
- 兼容GB2312、GB13000-1、BIG5 编码中的所有汉字,使用双字节编码
- 编码空间为 0x8140~0xFEFE,共有 23940 个码位,
- 其中 GBK1 区和 GBK2 区也是 GB2312 的编码范围。收录了 21003 个汉字。
GBK向下与 GB 2312 编码兼容,向上支持 ISO 10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。
ISO 10646 是国际标准化组织ISO 公布的一个编码标准,即 Universal Multilpe-Octet Coded Character Set(简称UCS)
大陆译为《通用多八位编码字符集》,台湾译为《广用多八位元编码字元集》,它与 Unicode 组织的Unicode编码完全兼容。
ISO 10646.1 是该标准的第一部分《体系结构与基本多文种平面》。
我国 1993 年以 GB 13000.1 国家标准的形式予以认可(即 GB 13000.1 等同于 ISO 10646.1)。
作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。
位数: 使用 2个字节表示,可表示 21886个字符。
范围: 高字节从81到FE,低字节从40到FE。
汉子占用两个字节,英文占用一个字节
URL编码
url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和具中的值,将它们name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。不管哪种情况,在服务器端的表单输入格式样子象这样:
编码规则:
URL编码遵循下列规则:每对namelvalue由&;符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象=,&;,和%这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如"/",它的ascii码是92,92的十六进制是5c,所以"的url编码就是%5c。
编码表: | |||
backspace %08 | I %49 | v %76 | ó %D3 |
tab %09 | J %4A | w %77 | Ô %D4 |
linefeed %0A | K %4B | x %78 | Õ %D5 |
creturn %0D | L %4C | y %79 | Ö %D6 |
space %20 | M %4D | z %7A | Ø %D8 |
! %21 | N %4E | { %7B | ù %D9 |
" %22 | O %4F | | %7C | ú %DA |
# %23 | P %50 | } %7D | Û %DB |
$ %24 | Q %51 | ~ %7E | ü %DC |
% %25 | R %52 | ¢ %A2 | Y %DD |
& %26 | S %53 | £ %A3 | T %DE |
' %27 | T %54 | ¥ %A5 | ß %DF |
( %28 | U %55 | | %A6 | à %E0 |
) %29 | V %56 | § %A7 | á %E1 |
* %2A | W %57 | « %AB | a %E2 |
+ %2B | X %58 | ¬ %AC | ã %E3 |
, %2C | Y %59 | ˉ %AD | ä %E4 |
- %2D | Z %5A | o %B0 | å %E5 |
. %2E | [ %5B | ± %B1 | æ %E6 |
/ %2F | \ %5C | a %B2 | ç %E7 |
0 %30 | ] %5D | , %B4 | è %E8 |
1 %31 | ^ %5E | μ %B5 | é %E9 |
2 %32 | _ %5F | » %BB | ê %EA |
3 %33 | ` %60 | ¼ %BC | ë %EB |
4 %34 | a %61 | ½ %BD | ì %EC |
5 %35 | b %62 | ¿ %BF | í %ED |
6 %36 | c %63 | à %C0 | î %EE |
7 %37 | d %64 | á %C1 | ï %EF |
8 %38 | e %65 | Â %C2 | e %F0 |
9 %39 | f %66 | Ã %C3 | ñ %F1 |
: %3A | g %67 | Ä %C4 | ò %F2 |
; %3B | h %68 | Å %C5 | ó %F3 |
< %3C | i %69 | Æ %C6 | ô %F4 |
= %3D | j %6A | Ç %C7 | õ %F5 |
> %3E | k %6B | è %C8 | ö %F6 |
%3F | l %6C | é %C9 | ÷ %F7 |
@ %40 | m %6D | ê %CA | ø %F8 |
A %41 | n %6E | Ë %CB | ù %F9 |
B %42 | o %6F | ì %CC | ú %FA |
C %43 | p %70 | í %CD | û %FB |
D %44 | q %71 | Î %CE | ü %FC |
E %45 | r %72 | Ï %CF | y %FD |
F %46 | s %73 | D %D0 | t %FE |
G %47 | t %74 | Ñ %D1 | ÿ %FF |
H %48 | u %75 | ò %D2 |