我知道周围有很多UnicodeDecodeError,但我找不到任何人解释我的问题..而且这个错误是从我无法重现的环境中随机跳过的。
我想要的是只比较两个字符串到字节(我不想要任何编码和解码)。
请注意,我使用python2.7和str1来自open(' ..',' r')。读取()在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
答案 0 :(得分:0)
首先,请粘贴您想要比较的字符串(或文件)并输出错误。
试一试:
for uchar in your_string.decode('utf-8'):
# compare chars
你想要二进制比较吗?然后尝试一下:
oneBuf = bytes(yourfile.read(1024))
然后比较字节bufs。