#python
#python
Вопрос:
Я знаю, что вокруг много ошибок UnicodeDecodeError, но я не могу найти никого, кто объяснил бы мою проблему.. И эта ошибка случайным образом выскочила из среды, которую я не могу воспроизвести..
Я хочу просто сравнить две строки байт в байт (я не хочу никакого кодирования и декодирования).
Обратите внимание, что я использую python2.7, а str1 — из open(‘..’, ‘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) charsn" % (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
Ответ №1:
Во-первых, пожалуйста, вставьте вашу строку (или файл), которую вы хотите сравнить, и исправьте ошибки.
Попробуйте:
for uchar in your_string.decode('utf-8'):
# compare chars
Вам нужно двоичное сравнение? Тогда попробуйте:
oneBuf = bytes(yourfile.read(1024))
Затем сравните буферы байтов.