UnicodeEncodeError:' ascii'编解码器不能对字符u' \ u200b'进行编码。位置31:序数不在范围内(128)

时间:2018-01-03 10:19:07

标签: python regex

为什么我的代码部分出现了错误:

assert response == str_list_answers[elements_counter],\
                "{} != {}".format(
                str_list_answers[elements_counter],
                response)//error message on this line

修改
任何线索我如何使正则表达式工作,我尝试并没有解决的问题:

这个问题肯定与\是一个特殊的角色

有关

response = re.sub('\u200b', '', response)我希望它删除\u200b

2 个答案:

答案 0 :(得分:0)

ASCII中有128个字符。您尝试编码的字符(零宽度空间)不是其中之一。

答案 1 :(得分:0)

根据我的经验,如果您尝试以格式()(str_list_answers [elements_counter]和您的情况下的响应)放置的字符串具有此字符,则会发生类似这样的事情。如果其中一个是解析某些外部内容(文本文件,网页等)的结果,就会发生这种情况。

检查str_list_answers [elements_counter]和响应,确保它们不包含此字符。例如:

s = 'bla' + u'\u200b'    
print s.encode('raw_unicode_escape')

你应该看到这张照片:

bla\u200b

当您找到此角色时,只需将其删除即可将其格式化为()。