欢迎光临散文网 会员登陆 & 注册

600 字搞懂字节、字符、编码、解码

2023-07-22 12:09 作者:Mr蓝珲  | 我要投稿

字符(Character)就是我们看得到、读得懂的东西,比如 e 是个英文字符, 是个中文字符。


字节(Byte)就是 8 比特二进制,比如 01100101。 01100101 是二进制表示形式,用十六进制表示就是 65。 这种表示方法难读懂多了,却是计算机用来表示数据的基本方法。


编码(Encode),涉及到编码方法。 将 'e' 用 ASCII 编码编码成十六进制, 得到 65, 用一个字节表示。将 '一' 用 uft8 编码编码成十六进制,得到 e4 b8 80, 用三个字节表示。 编码是将字符转化为字节的过程。解码(Decode)是将字节转化为字符的过程,其将用十六进制表示的数据解开成我们读得懂的字符。


下面以字符 eé 为例,理解字符,字节,编码,解码之间的区别与联系。


以下 Python 代码将字节 65 e9 解码为 。 解码方法是 latin-1。 \x 是个转义符,代表后面的数字是十六进制。将字节 65 解码,得到字符 e, 将字节 e9 解码, 得到字符 é

用 latin-1 编码 eé,得到两个字节,65 e9 


以下 Python 代码将三个字节 65 c3 a9 解码为 。 与上例不同,这里的解码方法是 utf8。 同样是 é, latin-1 将其编码成 e9, 占一个字节,而 utf8 将其编码成 c3 a9,占两个字节。

用 utf8 编码 eé, 得到三个字节,65 c3 a9 


以下 Python 代码将中文字符 以 utf8 编码表示,表示为 e4 b8 80,用了三个字节。 可见,使用 utf8 编码,每个字符可以是不等长的,编码 é 用两个字节, 而编码 用三个字节。 问题:使用 utf8 编码,编码 e 会用几个字节?


用 utf9 编码中文字符 一, 得到三个字节,e4 b8 80




600 字搞懂字节、字符、编码、解码的评论 (共 条)

分享到微博请遵守国家法律