如何使用Python startwith方法将unicode和ascii字符串组合?

时间:2018-11-26 08:39:00

标签: python unicode ascii python-unicode

在我的情况下,使用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'

2 个答案:

答案 0 :(得分:4)

您的前缀字符串是 not ASCII。如错误消息所述,您在位置9有非ASCII字符;破折号。该字符串可能是utf-8。

您可以将前缀解码为unicode:

text_string.startswith(prefix.decode('utf-8'))

答案 1 :(得分:0)

text_string.encode().startswith(prefix)