Python で Unicode 文字列をファイルに書き込もうとしていますが、Linux の「cat」または「less」を使用してファイルを読み取ると、正しい文字が書き込まれず、代わりにゴミとして表示されます。
Oracle データベースからオブジェクトを読み取っています。タイプを出力すると(aはデータベース結果の行です):
logger.debug(type(a[index]))
それは出力します:
<type 'unicode'>
次のように書き込み用にファイルを開きます。
ff = codecs.open(filename, mode='w', encoding='utf-8')
そして、次のようにファイルに行を書き込みます。
ff.write(a[index]))
しかし、出力ファイルを読むと、正しくアクセント付きの文字が表示されず、代わりにゴミが表示されます:
$Bu��rger, Udo, -1985. Way to perfect horsemanship
PythonでUnicode文字列オブジェクトをファイルに正しく書き込むにはどうすればよいですか?