Python3学习笔记(二):编码为什么python2升级到python3时就遇到需要再加.encode()
发布日期:2021-06-30 10:12:17 浏览次数:2 分类:技术文章

本文共 637 字,大约阅读时间需要 2 分钟。

    在一次使用python2升级到python3时就遇到需要再加.encode()的事情,当时并不了解是为什么要加encode,今天就来好好了解一下Python十分重要的编码

    在python2.x 中是不区分bytes和str类型的,在python3中bytes和str中是区分开的,str的所有操作bytes都支持。

    也许就是我遇到的这这个问问题的答案,那么什么bytes,什么str类型啥意思?

Unicode是什么,UTF-8呢?

    Unicode中文名是国际码,就是包含所有其他语言的编码制度。Python3使用的就是这个编码。还有我们熟悉的ASCII 是什么情况?谁让编码本来是由美国人编写的,人家就26个字母加上数字等等就够用了,哪里会考虑到有欧洲亚洲等等不同文字。然后大家为了自家的文字搞了不同的编码,就像中国的GBK2312一样。

    为了统一编码,让大家都能使用,如此就搞出了国际码,也叫万国码。但是你想啊,一个字母才占1个字节,而我们的中文占好几个字节呢。按照万国码的方式就是统一使用比较大的空间来承载文字与字母,这会导致空间的消耗是不合理的。大家又搞出了UTF-8这个万国码的省空间版,会把字母与其他分不同的大小来存储,既省了空间,又可以通用!

    

    而由于str是python字符串的类型,在被需要转化成byte类型的调用时,在python2.X是不会出现报错的,而在python3中进行了较大的变化,需要将str.encode()后转化成byte类型才不会报错。

转载地址:https://islet.blog.csdn.net/article/details/79651623 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python函数参数中令人看不懂的*,**表示什么?
下一篇:Python3的基础数据类型小结

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月27日 02时54分21秒