Python,用短划线替换长划线?

时间:2013-10-03 01:49:44

标签: python replace python-2.x

我想用短划线()替换长划线(-)。我的代码:

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

导致以下错误:

  

SyntaxError:第76行文件./script.py中的非ASCII字符'\ xe2',但未声明编码;有关详细信息,请参阅http://www.python.org/peps/pep-0263.html

我该如何解决这个问题?

2 个答案:

答案 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'), '--')