2013-10-03 2 views
5

긴 대시 ()를 짧은 대시 (-)로 바꾸고 싶습니다. 내 코드 : 다음과 같은 오류에파이썬, 긴 대시를 짧은 대쉬로 바꿉니 까?

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

관련 문제