我的 xml 文件是这样编码的:<?xml version="1.0" encoding="utf-8"?>我正在尝试使用美丽的汤解析这个文件。from bs4 import BeautifulSoupfd = open("xmlsample.xml") soup = BeautifulSoup(fd,'lxml-xml',from_encoding='utf-8')但这导致Traceback (most recent call last): File "C:\Users\gregg_000\Desktop\Python Experiments\NRE_XMLtoCSV\NRE_XMLtoCSV\bs1.py", line 4, in <module> soup = BeautifulSoup(fd,'lxml-xml', from_encoding='utf-8') File "C:\Users\gregg_000\AppData\Local\Programs\Python\Python36\lib\site- 包\bs4__init__.py”,第 245 行,在init markup = markup.read() 文件中“C:\Users\gregg_000\AppData\Local\Programs\Python\Python36\lib\encodings\cp125 2.py”,第 23 行,在解码返回 codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError :“charmap”编解码器无法解码位置 5343910 中的字节 0x9d:字符映射到未定义我的感觉是 Python 想要使用默认的 cp1252 字符集。如何强制使用 utf-8 而不必求助于命令行?(我处于无法轻松强制对 python 设置进行全局更改的设置中)。
1 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
您还应该将编码添加到您的open()调用中(如文档所示,这是一个可接受的参数)。默认情况下,在 Windows 中(至少在我的安装中),如您所料,默认值为 cp1252。
from bs4 import BeautifulSoup
fd = open("xmlsample.xml", encoding='utf-8')
soup = BeautifulSoup(fd,'lxml-xml',from_encoding='utf-8')
添加回答
举报
0/150
提交
取消