Python - 不能编码字符u' \ u2019'位置4:序数不在范围内(256)

时间:2018-02-27 21:47:58

标签: python

我有以下字符串:

cbBb’

最后一个字符是u'\u2019'

我尝试了以下内容:

value = "cbBb’"
value.replace(u"\u2019", "-")
value.encode('ascii', 'ignore')

但是当我尝试做的时候:

str(value)

我明白了:

can't encode character u'\u2019' in position 4: ordinal not in range(256)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

在python 2中,字符串可以是unicode,也可以是常规字符串。您应该指定它是一个unicode字符串,通过在字符串前面添加a: contains an activity b: follows a c: follows b 来运行您的replace()

u

value = u'cbBb’' value = value.replace(u"\u2019", "-") value.encode('ascii', 'ignore') print(str(value)) #cbBb- 也不排成一行,您需要将其重新分配给某些内容。

旁注你可能要考虑交换到Python 3,因为Python 2中的unicode处理有点笨拙。