Я пытаюсь понять кодирование в 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 )
преобразует данную строку, заданную вкодирование "кодировка" в текстовом формате Unicode Python.Поэтому на выходе получается
type(text) = <type 'unicode'>
Итак, теперь я использую исходный текст из моего файла в стиле кодировки utf-8, а для остального кода «text» - это текст 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" соответственно?