Как использовать Python запускается с методом для комбинации Unicode и Ascii строки? - PullRequest
0 голосов
/ 26 ноября 2018

В моем случае, у меня есть Unicode text_string и префикс в качестве строки ASCII, когда я использую

text-string.startswith(prefix) 

Я получаю исключение таким образом

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 9: ordinal not in range(128)

как сравнить обе строки, я попытался преобразовать строку ASCII в Unicode, используя метод unicode (string) , но все равно получил то же исключение.

как решить эту проблему?В худшем случае, как подавить это исключение при сравнении?

text - u'PreciChrom I/II is a lyophilized control based on human citrated plasma.'
prefix - 'Reagents – working solutions'

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Ваша строка префикса не ASCII.Как говорится в сообщении об ошибке, у вас есть не-ASCII символ в позиции 9;ан тире, .Строка, вероятно, utf-8.

Вы можете просто декодировать префикс в Unicode:

text_string.startswith(prefix.decode('utf-8'))
0 голосов
/ 26 ноября 2018

text_string.encode().startswith(prefix)

...