3
ISO-8859-1/Latin-1文字セットを扱うとき、私はPythonで膨大なエンコーディングの問題に直面しています。Python ISO-8859-1エンコーディング
os.listdir
を使用してフォルダの内容を取得すると、ISO-8859-1(例: 'Ol \ xe1 Mundo' ')でエンコードされた文字列が得られますが、Pythonインタプリタでは同じ文字列がエンコードされます
In : 'Olá Mundo'.decode('latin-1')
Out: u'Ol\xa0 Mundo'
文字列を同じ形式にデコードするにはどうすればよいですか。
http://en.wikipedia.org/wiki/ISO/IEC_8859-1
:私はos.listdir
が正しくエンコードされた文字列を返していることを見てきましたが、インタプリタではありません(「A」の文字は、ないに「\ XA0」ISO-8859-1では「\ XE1」に対応します)
どのように克服するための考えですか?
'os.listdir()'はバイトを返します。ファイルに名前を付けたプロセスは、ファイルにiso-8859-1で特定の解釈を持つ名前を付けるように選択しました。ファイル名はBIG-5やJISに簡単に格納でき、 'os.listdir()'は気にしません。 – sarnold
@sarnold: 'os.listdir()'は文字列やバイトを返すことができます。渡す内容とディレクトリの内容に依存します。 – Thanatos