zoukankan      html  css  js  c++  java
  • UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 3880: invalid continuation byte

    今天生产环境的报错,昨天执行得好好的代码,突然报错:
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 3880: invalid continuation byte

    源代码很简单,就是都一个日志文件,然后进行一些代码逻辑处理
    代码:

    buffer =open(file, 'r')
    for line in buffer:
        xxxx
    

    昨天还执行得好好的,今天突然出错。

    试过几个解决方案,最终这个方案起作用了:

    buffer =open(file, 'r',encoding='ISO-8859-1')
    for line in buffer:
        xxxx
    

    日志文件格式是utf-8,一般来说这都是默认的文件编码格式。

    ISO-8859-1 查了一下,属于 西欧语系。

    看了网友的解释,上面这个问题是是编码解码的问题,就是‘utf-8’不能解码位置3880的那个字节(0xce),也就是这个字节超出了utf-8的表示范围了。
    而 ISO-8859-1 这个编码可以正常解码。

    关于python的Unicode编解码,可以看看这个链接:
    https://segmentfault.com/a/1190000004625718

    虽然出错的莫名奇妙,但是幸运找到这个解决方案,而且 it works!

  • 相关阅读:
    North North West
    HDU-5387 Clock
    HDU-1036 Average is not Fast Enough!
    Growling Gears
    HDU-5375 Gray code
    HDU-5373 The shortest problem
    hdu-5364 Distribution money
    UVA
    HDU-5363 Key Set
    HDU-5326 Work
  • 原文地址:https://www.cnblogs.com/bigband/p/13830183.html
Copyright © 2011-2022 走看看