1

我需要能够在我的代码中使用来自网站的复制+粘贴字符串。该网站的编码是 unicode (utf-8)。字符串

'''I’ve held others before''' 

是复制+粘贴的,并且有一个“有趣”的撇号。当我尝试替换这个撇号时

my_string = '''I’ve held others before'''

my_string.replace('’', "'")
print(my_string)

我仍然得到

>>> I’ve held others before

代替

>>> I've held others before

我不能使用带有有趣撇号的字符串,因为稍后在我的代码中它给了我这个错误:

'ascii' codec can't decode byte 0xe2 in position 2: ordinal not in range(128)

我尝试同时添加

my_string.decode('utf-8')
my_string.encode('utf-8')

但他们似乎什么也没做。有什么想法吗?

4

1 回答 1

1

字符串在 python 中是不可变的,您需要再次将结果分配给str.replace变量。

>>> my_string = '''I’ve held others before'''
>>> my_string = my_string.replace('’', "'")
>>> my_string
"I've held others before"

最好u'...'对 unicode 字符串使用前缀:

>>> u'''Joey’s house'''.replace(u'’', "'")
"Joey's house"

在文件顶部添加此行以删除这些解码错误:

# -*- coding: utf-8 -*-
于 2013-09-07T20:00:20.050 回答