编码,解码,乱码等等。

先来扫盲:
解码:把看得懂的东西转成二进制字节码
编码:将二进制字节码转成看得懂的东西

常用编码:
ASCII:美国定义的一张码表。这张码表中只有:数字、字母、符号、拉丁文。用1个字节的最低7位表示数据。
ISO8859-1:欧洲的一张码表,兼容ASCII,增加了欧洲语言。一个字节表示一个字符,所有8位都表示数据。
GB2312:兼容ASCII,识别数千中文,2个字节表示一个汉字。
GBK:是GB2312的升级版,识别2万多中文,2个字节表示一个汉字。
GB18030:是GBK的升级版,包含了大部分的中文,还有少数民族的文字。2个字节表示一个汉字。
Unicode:世界计算机协会制定通用码表,2个字节表示一个字符。
UTF-8Unicode升级版。能用1个字节表示的就用1个字节,要用两个字节的就用2个字节,能用3个字节表示的就用3个字节。汉字基本都是3个字节。

乱码问题终极原因:
举一个好懂的例子:你和班花传纸条,约定010101i love you, 而对于黑客小黑一般用010101来表示fuck you。你给班花传了纸条,被小黑截获了,然后小黑就把010101解读成了fuck you然后,故事就开始了=-=
在这个例子里,把i love you对应成010101的过程,就叫做编码encode, 把010101读成i love you的过程就叫做解码decode,而黑客小黑不懂你和班花之间的规则(即编码格式decoding format),他解出来的码就是个乱码 fuck you. 嗯,大概就是这样。

一图胜千言:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41687289/article/details/80054599