编码ascii,latin1,utf8,gbk

来源:互联网 发布:struct node next 编辑:程序博客网 时间:2024/05/22 04:48
ASCII
American Standard Code for Information Interchange
早期的字符集编码,使用1个字节的后7位可以表示128个字符
分别是:大小写字母,数字,标点符号,非打印字符及控制符.

Latin1
ISO 8859-1 Latin1
扩展欧洲语言
使用128-255表示拉丁字符中的特殊字符.

Unicode
支持欧洲,非洲,中东,亚洲
不支持Braille, Cherokee, Ethiopic, Khmer, Mongolian, Hmong, Tai Lu, Tai Mau,Ahom, Akkadian,
Aramaic, Babylonian Cuneiform, Balti, Brahmi, Etruscan, Hittite, Javanese, Numidian, Old Persian Cuneiform, Syrian

UTF8
Universal Transformation Format
单字节 0xxxxxxx
n 字节 第一个字节前n位为1,n+1位为0,后面字节的前两位一律设为10
UNICODE到UTF-8的转换就是先确定编码所需要的UTF-8编码字节数,然后用UNICODE编码位从低位到高位依次填入上面表示为x的位上,不足的高位以0补充

GB2312
2个字节;
收录7445个字符,6763个汉字;其中一级汉字3755个,二级汉字3008个,其它字符682个.
编码方式:区位码;分区处理,每区含94个字符;
01-09区为特殊符号
16-55区为一级汉字,按拼音排序
56-87区为二级汉字,按部首/笔画排序
储存方式:EUC-CN;采用两个字节表示
高位:0xA1-0xF7
低位:0xA1-0xFE


区位码 1601
EUC-CN B0A1

GBK/cp936
2个字节
收录23940个字符,21886个汉字
编码方式:
高位:0x81-0xFE
低位:0x40-0xFE

GB18030
多字节编码,由1,2,4个字节组成
收录70244个字符
编码方式
单字节:0x0-0x7F
双字节:1.0x81-0xFE;2.0x40-0xFE(除0x7F)
四字节:1.0x81-0xFE;2.0x30-0x39;3.0x81-0xFE;4.0x30-0x39

BOM
Byte Order Mark
字节序标记
FEFF在USC中是不能存在的字符,ZERO WIDTH NO-BREAK SPACE
utf8 EFBBBF
utf16 big endian FEFF
utf16 small endian FFFE

UTF-8转换表
UNICODE bit数 UTF-8 byte数 备注
0000 0000 ~ 0~7 0XXX XXXX 1
0000 007F

0000 0080 ~ 8~11 110X XXXX 2
0000 07FF 10XX XXXX

0000 0800 ~ 12~16 1110 XXXX 3 基本定义范围:0~FFFF
0000 FFFF 10XX XXXX
10XX XXXX

0001 0000 ~ 17~21 1111 0XXX 4 Unicode6.1定义范围:0~10 FFFF
001F FFFF 10XX XXXX
10XX XXXX
10XX XXXX

0020 0000 ~ 22~26 1111 10XX 5
03FF FFFF 10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX

0400 0000 ~ 27~31 1111 110X 6
7FFF FFFF 10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX


附ASCII表:

原创粉丝点击