4

Python 2.7 でテキスト ファイルに行を書き込もうとしており、次のコードがあります。

# -*- coding: utf-8 -*-
...
f = open(os.path.join(os.path.dirname(__file__), 'output.txt'), 'w')
f.write('Smith’s BaseBall Cap') // Note the strangely shaped apostrophe

ただし、output.txt ではSmith‚Äôs BaseBall Cap、代わりに , が表示されます。このエンコーディングの問題を修正する方法がわかりませんか? この種の問題に関するヒントはありますか?

4

2 に答える 2

13
于 2012-07-19T00:56:32.987 に答える
1

いくつかの可能性がありますが、最初に確認することは、出力ファイルに実際に想定どおりの内容が含まれていることです。間違ったエンコーディングでファイルを表示していませんか? 一部のエディターには、ファイルを表示しているエンコーディングを選択するオプションがあります。エディターはファイルのエンコーディングを知る必要があり、ファイルが UTF-8 以外のエンコーディングであると解釈すると、間違ったものを表示します。ファイルの内容は正しいですが。

コードを (Python 2.6 で) 実行すると、ファイルに正しい出力が得られます。別の試み:codecsモジュールを使用して、UTF-8 書き込み用のファイルを開きます: f = codecs.open("file.txt", "w", "utf-8"). Then declare the string as a unicode string withu"'Smith's BaseBall Cap'"`.

于 2012-07-19T00:55:32.377 に答える