前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python的encode和decode

python的encode和decode

作者头像
py3study
发布2020-01-07 17:54:24
2.8K0
发布2020-01-07 17:54:24
举报
文章被收录于专栏:python3python3

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档