アイスランド文字の id3 タグを読み取るときに問題が発生しました。
シェルからの簡単な例。
>>> audio = mutagen.easyid3.EasyID3('./Björk/Albums/1990 - Gling-Gló [mp3-231]/01 - Gling-Gló.mp3')
>>> audio['title']
5: [u'Gling-Gl\xf3']
まず第一に、タグがどの文字エンコーディングに含まれているかを確認する方法がよくわかりません。私が集めたものから、これはミュータジェンでそれを行う方法です:
>>> audio = mutagen.id3.ID3('./Björk/Albums/1990 - Gling-Gló [mp3-231]/01 - Gling-Gló.mp3')
>>> for key, value in audio.items():
... print value.encoding
これは、各項目に対して「0」を出力します。
そして、id3タグの場合、数字0は文字列がiso-8859-1でエンコードされていることを意味することをどこかで見ましたが、そこからどこに行くべきかわかりません。これは正しくないと思いますか?
>>> audio.get('artist')[0].decode('iso-8859-1')
14: u'Bj\xc3\xb6rk'
お察しのとおり、文字エンコーディングの問題に関しては、私は非常に混乱しています。
私が望むのは、タグを適切な utf-8 文字列としてキャプチャして、データベースに配置できるようにすることだけです。これは一例に過ぎませんが、エンコーディングがまったく異なる他のファイルに出くわす可能性があると思いますので、万能な解決策を探しています。これを修正するだけで、軌道に乗るのに本当に役立ちます。
前もって感謝します。