Я знаю, что есть много UnicodeDecodeError, но я не могу найти никого, объясняющего мою проблему .. И эта ошибка случайно перескочила с среду, которую я не могу воспроизвести.UnicodeDecodeError: кодек 'ascii' не может декодировать байт 0xe2 в позиции 46: порядковый номер не в диапазоне
Я хочу просто сравнить два байта строки с байтом (я не хочу кодирования и декодирования).
Обратите внимание, что я использую python2.7, а str1 - от открытого ('..', 'r'). Read() в linux.
Надежда на ваши советы ..
def diff_str(str1, str2):
minlen = min(len(str1), len(str2))
if str1 == str2:
return "All %d bytes same" %minlen
for diff_pos in xrange(minlen):
if str1[diff_pos] != str2[diff_pos]:
break
k = 100
to_ret = "(%d vs %d) chars\n" % (len(str1), len(str2))
to_ret += "diff starts at %d:\n" % diff_pos
# error jumps out at here..
to_ret += str1[diff_pos:diff_pos+k] + "\n"
to_ret += str2[diff_pos:diff_pos+k] + "\n"
return to_ret