在我的情况下,使用Unicode文本字符串和前缀为ASCII字符串
text-string.startswith(prefix)
我以这种方式遇到异常
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 9: ordinal not in range(128)
如何比较两个字符串,我尝试使用 unicode(string)方法将ASCII字符串转换为Unicode,但仍然遇到相同的异常。
该如何解决?在最坏的情况下,如何在比较时抑制此异常?
text - u'PreciChrom I/II is a lyophilized control based on human citrated plasma.'
prefix - 'Reagents – working solutions'
答案 0 :(得分:4)
您的前缀字符串是 not ASCII。如错误消息所述,您在位置9有非ASCII字符;破折号–
。该字符串可能是utf-8。
您可以将前缀解码为unicode:
text_string.startswith(prefix.decode('utf-8'))
答案 1 :(得分:0)
text_string.encode().startswith(prefix)