Unicode编码
Unicode编码,又称万国码、国际码、统一码,是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode 编码共有三种具体实现,分别为utf-8,utf-16,utf-32,其中utf-8占用一到四个字节,utf-16占用二或四个字节,utf-32占用四个字节。
- UTF-8的特点是对不同范围的字符使用不同长度的编码。
- UTF-16编码以16位无符号整数为单位。我们把Unicode编码记作U。前缀写为\u、%u。
- UTF-32编码以32位无符号整数为单位。
Unicode编码与ASCII编码不兼容,但可以转换。
汉字转Unicode编码
“你好”转为Unicode为“\u4f60\u597d”。 下为Python代码:
>>> s = u"\u4f60\u597d" >>> print(s) 你好
Unicode转ASCII
你好的ASCI编码
HTML编码
使用标签<meta>,例如
<meta charset="utf-8">
除了utf-8,常见的还有
GB2312
发布于1980年,基本集共收入汉字6763个和非汉字图形字符682个。整个字符集分成94个区,每区有94个位。每个区位上只有一个字符,一个字符占两个字节。
GBK
GBK全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification),发布于1995年,GBK 向下与 GB2312 编码兼容。
没找到合适的网站,这个网站也只能一个字,还不如自己敲代码呢。
汉字进行GBK和Unicode编码
>>> s='你好' >>> s.encode('gbk') b'\xc4\xe3\xba\xc3' >>> s.encode('unicode_escape') b'\\u4f60\\u597d'
HTML特殊符号编码表(部分)
Base编码
Base16
Base16编码表
汉字的Base16编码
编码原理,先转为ASCII,两个一组,转为2进制,4个一组,转为10进制,查表即可。
使用网站:一个工具箱-Base16
Base32
Base32编码表
汉字的Base64编码
使用网站:一个工具箱-Base32
Base64
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。3个字节相当于24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,另外两个一般为“+”、"/"。使用“=”作为后缀,如果不够三个字节,即“=”个数为0、1、2。
Base64 编码表
标题
使用网站:jsons.cn
可尝试“你好”、“i love you too”,观察“=”的个数
还有一些,Base 58、Base 62、Base 85、Base 91、Base 100。例如,比特币使用的是Base58,即123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz,去除了容易混淆的0、o、I(大写的i)、l(小写的L)。
参考
更多内容查看:网络安全-自学笔记
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。