首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TypeError:在显式指定编码时,不支持解码str

TypeError:在显式指定编码时,不支持解码str
EN

Stack Overflow用户
提问于 2018-02-01 17:36:39
回答 1查看 7.3K关注 0票数 0

知道在显式指定编码时为什么会发生这种情况吗?

代码语言:javascript
运行
复制
In [23]: import sys

In [24]: sys.getdefaultencoding()
Out[24]: 'utf-8'

In [25]: str(b'', encoding='utf-8') == ''
Out[25]: True

In [26]: str('') == ''
Out[26]: True

In [27]: str('', encoding='utf-8') == ''
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-27-e187972042f8> in <module>()
----> 1 str('', encoding='utf-8') == ''

TypeError: decoding str is not supported

根据str的文档

默认编码为sys.getdefaultencoding()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-01 17:47:05

这里的帮助是非常清楚的:

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str 从给定对象创建一个新的字符串对象。如果指定了编码或错误,则对象必须公开将使用给定编码和错误处理程序解码的数据缓冲区。否则,返回object.str() (如果定义的话)或repr(对象)的结果。编码默认为sys.getdefaultencoding()。错误默认为“严格”。

您可以只为字节(b'')指定编码,而不能为字符串(如'' )指定编码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48568654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档