【发布时间】:2014-01-06 20:43:10
【问题描述】:
使用python解释器
>>> print u'\xe9'
é
但是如果我将同一行放在 Django 视图中,我会得到
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0:
ordinal not in range(128)
这是为什么呢?
我正在使用 Django 1.5.1 和 python 2.6.6。
一些背景... 我有一个 Django 项目,它使用 3rd 方模块来处理一些字符串,并打印它们。在 Django 之外使用该模块时,它工作正常,但是当它作为 Django 项目的一部分使用时,它在尝试打印非 ascii 字符时崩溃。我真的不关心打印,只关心它正在做的其他事情。
【问题讨论】:
-
它在哪里打印字符以及它在哪里失败?
-
抱歉,我不确定我是否理解您的问题。在 Django 视图中执行 print u'\xe9' 会导致异常。
-
但问题是,为什么要在视图中打印?通常在您输出到响应的视图中。
-
正如我上面所写的,我正在使用第 3 方模块(由视图调用)来进行打印。
标签: python django unicode character-encoding django-views