2013-10-03 21 views
5

長いダッシュ()を短いダッシュ(-)に置き換えたいとします。私のコードは次のエラーでPythonでは、長いダッシュを短いダッシュに置き換えますか?

if " – " in string: 
     string = string.replace(" – ", " - ") 

結果:

SyntaxError: Non-ASCII character '\xe2' in file ./script.py on line 76, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

どのように私はこの問題を解決することができますか?

+5

PEP 263をお読みですか? – geoffspear

答えて

11

ロングダッシュはASCII characterではありません。

#-*- coding: utf-8 -*- 

他のエンコーディングがutf-8横にもありますが、ほぼすべてをカバーしてASCII文字で作業していない場合、utf-8を使用することが常に安全である(ユニコード:この(どこかの上に)のように、スクリプトのエンコーディングを宣言)文字。

詳細はPEP 0263を参照してください。

+3

@ワーブル:何ではないですか? '\ xe2'?長いダッシュをUTF-8にエンコードすると、 '\ xe2'の最初のバイトが得られます(その後に' \ x80 \ x94'が続きます)。 – icktoofay

+1

Err ...うん、それは私に間違った文字を貼り付けるように教えてくれるでしょう。 +1 – geoffspear

関連する問題