繁体   English   中英

Python:关于编码的问题

[英]Python: Question about encoding

我试图理解 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 文本格式。 因此 output 是

type(text) = <type 'unicode'>

所以现在,我以 utf-8 编码样式使用我的文件中的原始文本,并且我的代码“文本”的 rest 是 utf-8 文本。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM