python数字转unicode_python的encode和decode

python的encode和decode误读总结

最近在学Python,对编码有个误解的地方

下面是错误的理解:

encode():编码,将对象的编码转换为指定编码格式,按照字面理解,一直以为是其他编码格式转换成unicode格式编码

decode():解码,是编码的逆过程。解析破译,把Unicode格式转换成其他格式。

查看一些资料和其他大神的博客,才有了正确认知和理解

decode的作用是将其他编码的字符串转换成Unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成Unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将Unicode编码的字符串str2转换成gb2312编码。

python是个容易出现编码问题的语言。所以,我按照我的理解写下下面这些文字。

首先,要了解几个概念。

*字节:计算机数据的表示。8位二进制。可以表示无符号整数:0-255。下文,用“字节流”表示“字节”组成的串。

*字符:英文字符“abc”,或者中文字符“你我他”。字符本身不知道如何在计算机中保存。下文中,会避免使用“字符串”这个词,而用“文本”来表

示“字符”组成的串。

*编码(动词):按照某种规则(这个规则称为:编码(名词))将“文本”转换为“字节流”。(在python中:unicode变成str)

*解码(动词):将“字节流”按照某种规则转换成“文本”。(在python中:str变成unicode)

**实际上,任何东西在计算机中表示,都需要编码。例如,视频要编码然后保存在文件中,播放的时候需要解码才能观看。

unicode:unicode定义了,一个“字符”和一个“数字”的对应,但是并没有规定这个“数字”在计算机中怎么保存。(就像在C中,一个整数既 可以是int,也可以是short。unicode没有规定用int还是用short来表示一个“字符”)

utf8:unicode实现。它使用unicode定义的“字符”“数字”映射,进而规定了,如何在计算机中保存这个数字。其它的utf16等都是unicode实现。

总结:

编码是把文本(字符串)转换成字节流,Unicode格式转换成其他编码格式

解码是把字节流转换成字符串(文本),其他编码格式转成Unicode

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值