xml 形式の svn ログを操作すると、誤ってスクリプトでエラーが発生しました。エラーメッセージは次のとおりです。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)
入力データをデバッグすることで、何が間違っているかを見つけました。次に例を示します。
a=u'\u0440\u0435\u044c\u0434\u0437\u0444\u043a\u044b\u0443\u043a \u043c\u0443\u043a\u044b\u0448\u0449\u0442 \u0430\u0448\u0447'
>>> print a
реьдзфкыук мукышщт ашч
>>> print '{}'.format(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)
フォーマットのどこが悪いのか教えてください。文字列バイトの前にuが表示され、UTF8 からデコードしようとしているようです。ただし、Python 3 では上記の例はエラーなしで動作します。