我知道周围有很多UnicodeDecodeError,但我找不到任何人解释我的问题。这个错误是从一个我无法复制的环境中随机跳出来的。
我想要的只是比较两个字符串字节与字节(我不需要任何编码和解码)。
请注意,我使用python2.7和str1来自open('..', 'r').read()
希望大家多多指教。
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
首先,请粘贴您想要比较的字符串(或文件)并犯错误。
试一试:
for uchar in your_string.decode('utf-8'):
# compare chars
要二进制比较吗?那就试试吧:
oneBuf = bytes(yourfile.read(1024))