带重音符号的Unicode在日志记录上引发UnicodeDecodeError(应用程序引擎)

2024-06-16 09:37:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对一个旧的appengine应用程序进行更改,但是现在在格式化我的pc并安装了更新的工具之后,日志记录功能会引发一个unicode错误。在

在以前的开发环境中,一切正常。 ubuntu 9.04 Python2.6 谷歌appengine sdk 1.5

现在我正在尝试使用此环境进行更改: ubuntu 11.10 Python2.7 谷歌appengine sdk 1.6

在这个新的开发环境中,我在使用日志记录函数时遇到了错误。在

logging.info(u'Gerando lista de exibição') # error

错误:

'ascii' codec can't decode byte 0xc3 in position 22: ordinal not in range(128) args = ('ascii', 'Gerando lista de exibi\xc3\xa7\xc3\xa3o', 22, 23, 'ordinal not in range(128)') encoding = 'ascii' end = 23 message = '' object = 'Gerando lista de exibi\xc3\xa7\xc3\xa3o...' reason = 'ordinal not in range(128)' start = 22

我需要去除口音:

logging.info(u'Gerando lista de exibicao') # ok

我的编辑器是utf-8,所有脚本的第一行都是“coding:utf-8”。在

这是版本问题?有一些设置要做吗?在


Tags: in环境ubuntu错误记录asciinotrange
3条回答

python2在源代码中默认不使用UTF-8,否则必须指定编码。见PEP-263

#!/usr/local/bin/python
# -*- coding: utf-8 -*-

总之,在源代码中保留Unicode并不是一个好主意。在

您可以尝试用unicode and utf-8编码检查此页。策略和解决方法也包括在内。这是一个已知的问题,因为python2的默认编码是'ascii'。在

这是一个错误:

http://code.google.com/p/googleappengine/issues/detail?id=6266

希望它能在下一个版本(1.6.1)中得到修正。在

相关问题 更多 >