尝试使用Python 3读取UTF-8 XML文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试使用Python 3读取UTF-8 XML文件相关的知识,希望对你有一定的参考价值。

我试图用Python 3读取UTF-8 XML文件,但我真的遇到编码问题:

In [47]: fileObj = codecs.open(file, "r", "utf-8")

In [48]: fileObj.read()
Out[48]: ---------------------------------------------------------------------------
UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-48-dd7cd49f4aa8> in <module>()
----> 1 fileObj.read()

~/Documents/Projects/project/env/lib/python3.6/site-packages/IPython/core/displayhook.py in __call__(self, result)
    259             self.fill_exec_result(result)
    260             if format_dict:
--> 261                 self.write_format_data(format_dict, md_dict)
    262                 self.log_output(format_dict)
    263             self.finish_displayhook()

~/Documents/Projects/project/env/lib/python3.6/site-packages/IPython/core/displayhook.py in write_format_data(self, format_dict, md_dict)
    188                 result_repr = '
' + result_repr
    189 
--> 190         print(result_repr)
    191 
    192     def update_user_ns(self, result):

UnicodeEncodeError: 'ascii' codec can't encode character 'u20ac' in position 1630: ordinal not in range(128)

哪里错了?

答案

马克是对的,我的问题出在iPython上。

我解决了将PYTHONIOENCODING env变量设置为utf-8的问题:

export PYTHONIOENCODING="utf-8"

谢谢!

以上是关于尝试使用Python 3读取UTF-8 XML文件的主要内容,如果未能解决你的问题,请参考以下文章

python 读取xml文件

Python - 使用 utf-8 编码读取和写入 csv 文件

python读取xml文件报错ValueError: multi-byte encodings are not supported

使用 Sublime Text 3 在 Python 3 中打印 UTF-8

python3.6_读取xml文件

记录读取xml文件内容