我正试图在Windows上使用lxml 2.3在Python 2.7中运行这一小段代码。
from lxml import etree
p = etree.XMLParser(encoding='cp1252')
返回
LookupError: unknown encoding: 'cp1252'
根据我的理解,lxml使用libxml2,而libxml2依赖于libiconv来处理像这样的字符编码。但是,只有ascii或utf-8等基本编码才能正常工作。
有谁知道为什么我无法使用其他编码?是不是以某种方式加载了libiconv,即使它应该包含在lxml二进制包中?
谢谢!
解决:
我通过卸载64位版本的Python for Windows并安装32位版本以及lxml 2.3的32位二进制版本解决了这个问题。目前尚不清楚问题是什么,但我怀疑lxml的64位二进制版本不包含libiconv或无法以某种方式链接到它。
感谢所有阅读本文并试图提供帮助的人!