我想用短划线(–
)替换长划线(-
)。我的代码:
if " – " in string:
string = string.replace(" – ", " - ")
导致以下错误:
SyntaxError:第76行文件./script.py中的非ASCII字符'\ xe2',但未声明编码;有关详细信息,请参阅http://www.python.org/peps/pep-0263.html
我该如何解决这个问题?
答案 0 :(得分:12)
长划线不是ASCII character。声明脚本的编码,例如(位于顶部的某个地方):
#-*- coding: utf-8 -*-
utf-8
旁边还有其他编码,但如果不使用几乎涵盖所有(unicode)字符的ASCII字符,则使用utf-8
总是安全的。
有关详细信息,请参阅PEP 0263。
答案 1 :(得分:0)
我想链接另一个答案:https://stackoverflow.com/a/42856932/3751268。但是,这仅适用于Python 2。
这是python 3的解决方案:
my_str = '—asasas—'
my_str.replace(b'\xe2\x80\x94'.decode('utf-8'), '--')