1

次のようなエラーが表示されます

UnicodeEncodeError('ascii', u'\x01\xff \xfeJ a z z', 1, 2, 'ordinal not in range(128)'

次のようなシーケンスも取得しています

u'\x17\x01\xff \xfeA r t   B l a k e y'

\x01\xff\xfe を BOM として認識していますが、これらを明らかな出力 (Jazz および Art Blakey) に変換するにはどうすればよいですか?

これらは、音楽ファイルのタグを読み取るプログラムからのものです。

s.encode('utf8') などのさまざまなエンコーディングと、さまざまなデコードとそれに続くエンコードを試しましたが、成功しませんでした。

リクエストに応じて:

from hsaudiotag import auto
inf = 'test.mp3'
song = auto.File(inf)
print song.album, song.artist, song.title, song.genre

> Traceback (most recent call last):   File "audio2.py", line 4, in
> <module>
>     print song.album, song.artist, song.title, song.genre   File "C:\program files\python27\lib\encodings\cp437.py", line 12, in encode
>     return codecs.charmap_encode(input,errors,encoding_map) UnicodeEncodeError: 'charmap' codec can't encode character u'\xfe' in
> position 4 : character maps to <undefined>

printステートメントを次のように変更すると

with open('x', 'wb') as f:
    f.write(song.genre)

私は得る

Traceback (most recent call last):
  File "audio2.py", line 6, in <module>
    f.write(song.genre)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xff' in position 1:
ordinal not in range(128)
4

1 に答える 1