Python 3 设置默认字节编码

qwr*_*qwr 4 python encoding byte python-3.x

在 Python 3 中,bytes需要一个编码:

bytes(s, encoding="utf-8")
Run Code Online (Sandbox Code Playgroud)

有没有办法设置默认编码,所以bytes总是用 UTF-8 编码?

我想象的最简单的方法是

def bytes_utf8(s):
    return bytes(s, encoding="utf-8") 
Run Code Online (Sandbox Code Playgroud)

Mar*_*som 5

文档bytes将您重定向到 的文档bytearray,其中部分说明:

可选的 source 参数可用于以几种不同的方式初始化数组:

  • 如果是字符串,还必须给出编码(和可选的错误)参数;bytearray() 然后使用 str.encode() 将字符串转换为字节。

看起来没有办法提供默认值。

您可以使用该encode方法,它不会给出有一个默认,sys.getdefaultencoding()。如果您需要更改默认值,请查看此问题,但请注意,出于充分理由删除了轻松执行此操作的功能。

import sys
print(sys.getdefaultencoding())
s.encode()
Run Code Online (Sandbox Code Playgroud)