Python:关于编码的问题

Python:关于编码的问题,python,mysql,encoding,Python,Mysql,Encoding,我试图理解python中的编码内容,我想我几乎能理解它。下面是一些我将解释的代码,我希望您验证我的想法:) 那么第一行呢 text = line.decode( encoding ) 将编码“encoding”中给定的字符串转换为python的unicode文本格式。因此,输出是 type(text) = <type 'unicode'> 类型(文本)= 现在,我以utf-8编码方式使用文件中的原始文本,对于代码的其余部分,“文本”是utf-8文本 现在我想把utf-8文本转换

我试图理解python中的编码内容,我想我几乎能理解它。下面是一些我将解释的代码,我希望您验证我的想法:)

那么第一行呢

text = line.decode( encoding )
将编码“encoding”中给定的字符串转换为python的unicode文本格式。因此,输出是

type(text) = <type 'unicode'>
类型(文本)=
现在,我以utf-8编码方式使用文件中的原始文本,对于代码的其余部分,“文本”是utf-8文本

现在我想把utf-8文本转换成其他的东西,比如拉丁语,由“text.encode('latin1')”完成。在这种情况下,我的代码的输出是

type(iso_8859_1) = <type 'str'>
type(unicodeStr) = <type 'str'>
类型(iso_8859_1)=
类型(Unicodest)=
现在,我唯一要问的问题是:为什么后两种情况下的类型是'str'而不是'latin1'或'unicode'。这是我还不清楚的


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

首先,utf8!=unicode。
str基本上是一个字节序列,编码是解释这些序列的方法,unicode是,嗯,unicode。

Joel在这个主题上发表了一篇很好的帖子

,读完这篇链接文章后,你应该知道足够多的知识来理解其余的内容。开始接受和投票帮助你的人。谢谢链接。我现在完全明白发生了什么!
type(iso_8859_1) = <type 'str'>
type(unicodeStr) = <type 'str'>