在python中的str上使用encoding时会发生什么?

阿里·巴巴

我了解unicode,编码和解码。但是我不明白为什么编码函数对str类型起作用。我希望它仅适用于unicode类型。因此,我的问题是:在str而不是unicode上使用encoding的行为是什么?

马丁·彼得斯(Martijn Pieters)

在Python 2中,有两种类型的编解码器可用:str之间进行转换的人unicode,以及从和进行转换的strstr后者的示例是base64rot13编解码器。

str.encode()存在支持后者方法:

'binary data'.encode('base64')

但是现在它已经存在了,人们也将它用于unicode->str编解码器。编码只能从unicode转到str(然后以其他方式解码)。为了支持这些功能,Python将首先使用ASCII编解码器隐式解码您的strunicode,然后再进行最终编码。

顺便说一句,当对象使用str->str编解码器时unicode,Python首先隐式编码为str使用相同的ASCII编解码器。

在Python 3中,已通过以下方法解决了这一问题:a)删除bytes.encode()andstr.decode()方法(请记住,bytes旧方法strstr方法都属于sorta unicode),以及b)使用函数str->str编码移动codecs模块中相同类型之间的编解码器转换也已得到澄清和更新,请参见“ Python特定编码”部分请注意,此处提到的“文本”编码在Python 2中可用,而改为编码为codecs.encode()codecs.decode()str

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当我在Bash脚本中对函数使用`&`时会发生什么?

在Python中,当您导入函数内部时会发生什么?

当函数在python中返回自己的名称时会发生什么?

在Python中的现有迭代器上使用iter:迭代器会发生什么?

在GitHub上分叉多次时会发生什么?

从技术上讲,在Ruby中需要文件时会发生什么?

当我在Ionic 2中导入未使用的附件时会发生什么?

Linux:在端口0上绑定时会发生什么

当我们在Python的类中给出函数定义时会发生什么

当使用asyncio.Queue()的使用者在队列中没有任务时会发生什么

使用takeUntil进行可观察的Angular销毁:ngOnDestroy中缺少.next()时会发生什么

当您在python中设置字典时会发生什么?

在日期字段上执行匹配查询时会发生什么

在svm.scv()中同时使用“ class_weight”和“ c”参数时会发生什么?

在AngularJS中删除ngRepeat使用的对象时会发生什么?

将属性应用于python中的类方法时会发生什么情况?

当我在抽象方法上使用call_user_func()时会发生什么?

在/上安装分区时会发生什么?

在/上安装分区时会发生什么?

当我在C ++中对类使用vector时会发生什么

当您使用“ + =”在Java中“更改”字符串时会发生什么情况?

NodeJs当next()方法上的Token正确时会发生什么?

暂停时会发生什么?

使用哈希分片在集群中添加新分片时会发生什么?

在“热”或“实时”数据库上使用“django-admin dumpdata”时会发生什么?

使用 Selenium 从网站表中抓取项目时会发生什么?

当我在不相互接壤的多边形上使用 GeoPandas 中的 .dissolve 函数时会发生什么?

为什么在python中使用递归时会发生这种情况?

当“+=运算符”分配给python中的空列表时会发生什么?