gpt4 book ai didi

Python:关于编码的问题

转载 作者:行者123 更新时间:2023-11-29 14:47:09 25 4
gpt4 key购买 nike

我正在尝试理解 python 中的编码内容,我想我几乎能够理解它了。所以这里是一些我将解释的代码,我希望你能验证我的想法:)

text = line.decode( encoding )
print "type(text) = %s" % type(text)
iso_8859_1 = text.encode('latin1')
print "type(iso_8859_1) = %s" % type(iso_8859_1)
unicodeStr = text.encode('utf-8')
print "type(unicodeStr) = %s" % type(unicodeStr)

所以第一行

text = line.decode( encoding )

确实将编码“encoding”中给出的给定字符串转换为 python 的 unicode 文本格式。因此输出是

type(text) = <type 'unicode'>

现在,我以 utf-8 编码风格使用文件中的原始文本,而对于代码的其余部分,“文本”是 utf-8 文本。

现在我想将(出于什么原因)utf-8 文本转换为其他内容,例如latin1 是通过“text.encode('latin1')”完成的。在这种情况下我的代码的输出是

type(iso_8859_1) = <type 'str'>
type(unicodeStr) = <type 'str'>

现在,我剩下的唯一问题是:为什么后两种情况的类型是“str”而不是“latin1”或“unicode”。这就是我仍然不清楚的地方。

后面的字符串“iso_8859_1”和“unicodeStr”是否分别以“latin1”或“unicode”编码?

最佳答案

首先,utf8 != unicode。
str 基本上是一个字节序列,编码是解释这些序列的方法,而 unicode 是,嗯 - unicode。
乔尔在这个主题上发表了很棒的文章http://www.joelonsoftware.com/articles/Unicode.html

关于Python:关于编码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com