私はPythonのエンコーディングに関することを理解しようとしています。そこでここではいくつかのコードは、私が説明しますと、私はあなたがそう最初の行Python:エンコーディングについての質問
text = line.decode(encoding)
は、エンコーディング「エンコーディング」で与えられ、与えられた文字列を変換しない私の考え:)
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)
を確認したいと思いますこれは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'>
で、私のために残っている唯一の問題:なぜタイプの2つの後者の場合「str」はありません「latin1の」または「ユニコード」です。それは私にはまだ分かりません。
"latin1"または "unicode"でコード化されていない後者の文字列 "iso_8859_1"と "unicodeStr"はresprectivlyですか?
リンクされた記事を読んだら、残りの部分を把握するのに十分なはずです。あなたを助ける人々の受け入れとアップヴォーティングを開始してください。 – wberry
リンクありがとうございます。私は今何が起こっているのか完全に理解しています! – toom