我正在尝试从字符串中删除十六进制字符\xef\xbb\xbf
,但是出现以下错误。
不太确定如何解决此问题。
>>> x = u'\xef\xbb\xbfHello'
>>> x
u'\xef\xbb\xbfHello'
>>> type(x)
<type 'unicode'>
>>> print x
Hello
>>> print x.replace('\xef\xbb\xbf', '')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)
>>>
最佳答案
您需要替换unicode对象,否则Python2将尝试使用ascii编解码器对x
进行编码以在其中搜索str
。
>>> x = u'\xef\xbb\xbfHello'
>>> x
u'\xef\xbb\xbfHello'
>>> print(x.replace(u'\xef\xbb\xbf',u''))
Hello
这仅适用于Python2。
在Python3中,两个版本都可以使用。
关于python - 从Unicode对象中删除十六进制字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40506992/