编码
ASCII
Amerrican Strandard Code for Information Interchange:美国信息交换标准代码,包括英文、符号等。
基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,
标准ASCII使用1个字节存储一个字符,首位是0,总共可表示128个字符。
如:空格SPACE 是32(二进制:00100000);
数字0 是48(二进制:00110000);
大写字母A 是65(二进制:01000001)。
另外还有 32 个控制字符(不能打印出来)。
特征: 只含有数字
- 0-9, 49-57
- A-Z, 65-90
- a-z, 97-122
例:
明文:hello,world.
十六进制:0x680x650x6c0x6c0x6f0xff0c0x770x6f0x720x6c0x640x2e
十进制:1041011081081112551211911111410810046
二进制:011010000110010101101100011011000110111100101100011101110110111101110010011011000110010000101110
GBK
-
汉字内码扩展规范,国标
-
汉字编码字符集,包含了2万多个汉字等字符,GBK中一个中文字符编码成两个字节的形式存储。
-
注意:GBK兼容了ASCII字符集。
GBK规定:汉字的第一个字节的第一位必需是1
1xxxxxxx xxxxxxxx 0xxxxxxxx 1xxxxxxx xxxxxxxx
Unicode字符集(统一码)
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。
它用两个字节来编码一个字符,字符编码一般用十六进制来表示.
UTF-32:4个字节表示一个字符(占空间、通讯效率低)
UTF-8(编码):
- 是Unicode字符集的一种编码方案,采取可变长编码方案,共分四个长度区:1个字节,2个字节,3个字节,4个字节。
- 英文字符、数字等只占1个字节,汉字字符占用3个字节。
举例:
Unicode有以下四种编码方式:
明文:hello,world.
highlighter- HTML
&#x [hex]:hello,world.
&# [hex]:hello,world.
\u [hex]:\U0068\U0065\U006C\U006C\U006F\U002C\U0077\U006F\U0072\U006C\U0064\U002E
\u+ [hex]:\U+0068\U+0065\U+006C\U+006C\U+006F\U+FF0C\U+0077\U+006F\U+0072\U+006C\U+0064\
base
Base16编码是将二进制文件转换成由16个字符组成的文本
base32的编码表是由(A-Z、2-7)32个可见字符构成,“=”符号用作后缀填充。
base64的编码表是由(A-Z、a-z、0-9、+、/)64个可见字符构成,“=”符号用作后缀填充。
base58的编码表相比base64少了数字0,大写字母I,O,小写字母 l (这个是L),以及符号‘+’和‘/’
base91的密文由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
Base100编码/解码工具(又名:Emoji表情符号编码/解码),可将文本内容编码为Emoji表情符号;同时也可以将编码后的Emoji表情符号内容解码为文本。
例:
明文:hello,world.123456
base16: 68656C6C6F2C776F726C642E313233343635
特征:大写字母(A-Z)和数字(0-9),不用‘=’补齐。
base32: NBSWY3DPFR3W64TMMQXDCMRTGQ3DK===
特征:大写字母(A-Z)和数字(2-7),不满5的倍数,用‘=’补齐。
base64: aGVsbG8sd29ybGQuMTIzNDY1
特征:大小写字母(A-Z,a-z)和数字(0-9)以及特殊字符‘+’,‘/’,不满3的倍数,用‘=’补齐。
base58: 2smDFYXWKE8vc8XA8dadEYcSqcQb
特征:相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号,最主要的是后面不会出现'='。
base85: BOu!rDst>tGAhM<A1fSl1GgsI
特征:特点是奇怪的字符比较多,但是很难出现等号
明文:hello,world.123456
base91: TPwJh>go2Tv!_,aRA2IbLmA
特征:由91个字符(0-9,a-z,A-Z,!#$%&()*+,./:;<=>?@[]^_`{|}~”)组成
不支持中文。
base100: ????????????????????
特征:就是一堆Emoji表情
还有很多编码目前阶段没有涉及,等日后再补充。