处理从外部程序或输入流捕获的数据时会出现此问题。我们希望将此类数据编码为常规 Python 字符串以进行打印或进一步处理。
考虑以下字节对象:
>>> from subprocess import * >>> stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0] >>> stdout b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'
要将其转换为用于打印目的的字符串,请对字节进行解码使用适当的编码:
>>> stdout.decode("utf-8") '-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'
虽然 UTF-8 是常见的编码,但使用与实际数据匹配的编码至关重要。否则可能会导致乱码或不正确的输出。
以上是如何在 Python 3 中将字节转换为字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!