Python Flask代码在从Eclipse外部运行时引发UnicodeDecodeError(仅限)
我正在使用Apache2和mod_wsgi来部署Flask应用程序 当使用pydev从Eclipse运行时,即使用Eclipse中的run菜单图标,该应用程序工作得非常好 但是,当从Eclipse外部运行完全相同的代码时(无论是通过命令行调用脚本,还是通过mod_wsgi),将引发UnicodeDecodeError,并且无法显示页面 下面是一段简短的问题代码:Python Flask代码在从Eclipse外部运行时引发UnicodeDecodeError(仅限),python,eclipse,utf-8,flask,pydev,Python,Eclipse,Utf 8,Flask,Pydev,我正在使用Apache2和mod_wsgi来部署Flask应用程序 当使用pydev从Eclipse运行时,即使用Eclipse中的run菜单图标,该应用程序工作得非常好 但是,当从Eclipse外部运行完全相同的代码时(无论是通过命令行调用脚本,还是通过mod_wsgi),将引发UnicodeDecodeError,并且无法显示页面 下面是一段简短的问题代码: label = 'créer' row = '<tr><td>{cell_label}</td>&
label = 'créer'
row = '<tr><td>{cell_label}</td></tr>'.format(cell_label = label)
render_template('template.html', row = row)
template.html包含:
<table>
{{ row | safe }}
</table>
出现的错误是:
'<tr><td>{cell_label}</td></tr>'.format(cell_label = label)
UnicodeEncodeError: 'ascii' codec can't encode character u'\\xe9' in position 7: ordinal not in range(128)
其他资料
echo$LANG返回:
en_US.UTF-8
文件(u app.py returns)
Python脚本,UTF-8 Unicode文本可执行文件
当我从Ecplise运行代码和执行测试时,我在virtualenv中使用相同的解释器python2.7.3
编辑
更改的问题标题和描述反映了代码只能通过Eclipse运行的事实 我在另外两个回答的问题中找到了解决方案: 识别问题 基本上,问题在于Pydev在后台更改了python的默认编码。这意味着包含非ASCII字符的代码在通过Eclipse和Pydev运行时工作正常,在任何其他上下文中都可能崩溃 找到解决办法 如何在Python<3的控制台上打印UTF-8编码的文本 不应更改默认编码。基思的回答提供了一个解决办法,但它确实不应该被使用。唯一好的解决方案是认识到Pydev的环境是非标准的,只需重写代码块