Skip to main content
 首页 » 编程设计

python之尝试将 Django 模型转换为 XML 时出现 UnicodeEncodeError

2025年05月04日29oomusou

我找到了一个 python 程序:Export Django database to xml file将 django 模型转换为 xml 表示。我在尝试运行程序时遇到这些错误。我的模型包含一些用法语编写的文本。

Traceback (most recent call last): 
  File "xml_export.py", line 71, in <module> 
  writer.content(value) 
File "xml_export.py", line 41, in content 
  self.output += str(text) 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: 
ordinal not in range(128)  

请您参考如下方法:

看起来您的变量 text 包含非 ASCII 字符串。

参见:

>>> mystring = u"élève" 
>>> mystring 
u'\xe9l\xe8ve' 
>>> str(mystring) 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128) 

因此,您首先需要将字符串编码为UTF-8:

>>> str(mystring.encode("utf-8")) 
'\xc3\xa9l\xc3\xa8ve' 

或者,如果(如注释所示)text 可能包含字符串以外的其他变量类型,请使用

self.output += unicode(mystring).encode("utf-8")