私は最近、エンコーディングに関係する何かを勉強していると私は、次のについて混乱しています:私は非ASCII文字をPythonビルトイン文字列に割り当てるとき、値はどういう意味ですか?
a = "哈" ## whatever non-ascii char is fine
a[0] ## = "\xe5"
a[1] ## = "\x93"
a[2] ## = "\x88"
len(a)
は3になります持っているかどうかを確認し
、および値のそれぞれは、「\のxe5」になり、
a.decode("utf-8") ## = u"\u54c8"
それは、Unicode文字列、および第なります:私は私がしなければということを理解する "の\ X93"、および "の\ X88"
eコードポイントは "\ u54c8"となります。 質問は:どのようなエンコード方法は、組み込みのPythonの文字列を使用していますか? a [0]は「\ x54」でなく、「1」は「\ xc8」でないので、一緒に「54c8」になるのはなぜですか?
右のutf-8コードポイントが "\ u54c8"である必要があるため、組み込みのpython strのエンコーディングはutf-8であってはなりません。そうですか?
使用しているPythonのバージョンは何ですか? – rdegges
sry私はそれを明確にしませんでした。これはPython 2.7.12です。 @rdegges – Nemo
utf8の詳細については、手動でデコードするコードも含めて、http://stackoverflow.com/a/38653062/4014959を参照してください。 –