Python のマニュアル.encode()
で、.decode()
文字列メソッドについて言及されていることがわかります。Python CLI で遊んでみるu'hello'
と、「通常の」文字列とは異なるデータ型のUnicode 文字列を作成'hello'
でき、 で変換/キャストできることがわかりましたstr()
。しかし、実際の問題は ASCII 127u'שלום'
を超える文字を使用するときに始まり、経験的に何が起こっているのかを正確に判断するのに苦労しています。
スタック オーバーフロー には 、Python のUnicodeと文字列のエンコード/デコード処理に関する混乱の例があふれ てい ます。
str()
メソッドを使用して文字列をエンコードおよびデコードするとき、特に 7 バイトで表現できない文字が文字列に含まれている場合、正確には何が起こりますか (バイトはどのように変更され、データ型はどのように変更されますか) ? どうやら、データ型を持つ Python 変数は<type 'str'>
エンコードとデコードの両方ができるというのは本当ですか? エンコードされている場合、文字列が UTF-8、ISO-8859-1、またはその他のエンコードで表されていることを意味すると理解していますが、これは正しいですか? デコードされている場合、これはどういう意味ですか? デコードされた文字列はユニコードですか? もしそうなら、なぜ彼らはデータ型を持っていないの<type 'unicode'>
ですか?
後でこれを読む人のために、Python 2 と Python 3 の両方に対処する必要があると思います。ありがとうございました!