Python UnicodeDecodeError读取xml文件时出现异常

Python UnicodeDecodeError读取xml文件时出现异常,python,Python,我试图用BeautifulSoup解析xml content = open(filename, encoding='utf-8').read() return BeautifulSoup(content) 检查源文件的编解码器,它告诉我应该是ascii码 ➜ worker git:(develop) ✗ chardetect ../complete_data/sample.xml

我试图用BeautifulSoup解析xml

    content = open(filename, encoding='utf-8').read()
    return BeautifulSoup(content)
检查源文件的编解码器,它告诉我应该是ascii码

➜  worker git:(develop) ✗ chardetect ../complete_data/sample.xml                                                                    git:(develop|✚9…
../complete_data/sample.xml: ascii with confidence 1.0
但是它还是会破坏我的程序

我如何修复它呢?此外,我如何知道将来的正确编码,而Python的异常消息是如此糟糕

例外情况
回溯(最近一次呼叫最后一次):
文件“parser_factory.py”,第97行,在
测试股东会议()
文件“parser\u factory.py”,第81行,在测试会议中
_导入\u源文件(集合\u name=“股东会议”,数据集\u name=“WSH\u董事会\u股东”)
文件“parser\u factory.py”,第78行,在源文件中
解析器(f,集合名称)。导入数据()
文件“/workspace/balalawsh/worker/parser_base.py”,第21行,在初始化中__
self.soup=self.read\u文件(文件名)
文件“/workspace/balala wsh/worker/parser_base.py”,第30行,在读取文件中
content=open(文件名,encoding='utf-8')。read()
文件“/Users/sample\u user/.pyenv/versions/3.4.3/lib/python3.4/codecs.py”,第319行,在decode中
(结果,消耗)=自身缓冲区解码(数据,自身错误,最终)
UnicodeDecodeError:“utf-8”编解码器无法解码位置180145中的字节0xe7:无效的连续字节

您可以尝试使用“cp1252”对测试进行解码。

我相信您正在阅读的测试不是Unicode。
chardet
不会检查整个文件。如果它包含一个单独的0xE7,那么它肯定不是ASCII,显然也不是UTF-8

也许可以帮助你确定它到底是什么。

也许也可以试试
Traceback (most recent call last):
  File "parser_factory.py", line 97, in <module>
    test_shareholder_meetings()
  File "parser_factory.py", line 81, in test_shareholder_meetings
    _import_source_files(collection_name="shareholder_meetings", dataset_name="WSH_BoD_Shareholder")
  File "parser_factory.py", line 78, in _import_source_files
    parser(f, collection_name).import_data()
  File "/workspace/balala-wsh/worker/parser_base.py", line 21, in __init__
    self.soup = self.read_file_in_bs(filename)
  File "/workspace/balala-wsh/worker/parser_base.py", line 30, in read_file_in_bs
    content = open(filename, encoding='utf-8').read()
  File "/Users/sample_user/.pyenv/versions/3.4.3/lib/python3.4/codecs.py", line 319, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 180145: invalid continuation byte