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

问题描述 投票:1回答:1

我试图用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 = '\n' + 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)

哪里错了?

xml python-3.x encoding python-3.6
1个回答
0
投票

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

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

export PYTHONIOENCODING="utf-8"

谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.