Python中引用编码错误字节

2024-09-26 22:53:00 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我输入line = line.decode('gb18030;)并得到错误

UnicodeDecodeError: 'gb18030' codec can't decode bytes in position 142-143: illegal multibyte sequence

有没有一种好方法可以自动获取错误字节?也就是说,有没有办法从内置命令或模块中获取142&;143或{}?由于我相当确信每行最多只会有一个这样的错误,我的第一个想法是:

^{pr2}$

我不知道该怎么说才对,但是gb18030的字节长度是可变的,所以这个方法一旦得到一个汉字(2个字节)就失败了。在


Tags: 方法in字节bytes错误linepositioncan
2条回答

访问捕获的异常对象的startend属性。在

u = u'áiuê©'
try:
  l = u.encode('latin-1')
  print repr(l)
  l.decode('utf-8')
except UnicodeDecodeError, e:
  print e
  print e.start, e.end
try:
    line = line.decode('gb18030')
except UnicodeDecodeError, e:
    print "Error in bytes %d through %d" % (e.start, e.end)

相关问题 更多 >

    热门问题