[英]UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
[英]UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 46: ordinal not in range
我知道周围有很多UnicodeDecodeError,但是我找不到任何人解释我的问题。而且这个错误从我无法重现的环境中随机跳出。
我想要的只是将两个字符串逐字节进行比较(我不需要任何编码和解码)。
请注意,我使用的是python2.7,str1来自Linux上的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) 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
首先,请粘贴您要比较的字符串(或文件)并出错。
试试:
for uchar in your_string.decode('utf-8'):
# compare chars
您想要二元比较吗? 然后尝试一下:
oneBuf = bytes(yourfile.read(1024))
然后比较字节bufs。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.