【发布时间】:2011-07-16 16:03:05
【问题描述】:
我正在尝试理解 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”编码?
【问题讨论】: