UnicodeDecodeError:'ascii'编解码器无法解码位置 46 中的字节0xe2:序号不在范围内



我知道周围有很多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))

相关内容

最新更新