djangoappengine中的Unicode编码错误

0 投票
2 回答
1663 浏览
提问于 2025-04-16 12:42

我从 www.allbuttonspressed.com 下载了一个叫 django-guestbook 的示例项目,想测试一下它是怎么工作的。但是当我访问 localhost:8000 的网址时,出现了以下错误信息:

追踪记录(最近的调用在最前面):
文件 "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py",第 3245 行,在 _HandleRequest 中 self._Dispatch(dispatcher, self.rfile, outfile, env_dict) 文件 "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py",第 3186 行,在 _Dispatch 中 base_env_dict=env_dict) 文件 "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py",第 531 行,在 Dispatch 中 base_env_dict=base_env_dict) 文件 "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py",第 2410 行,在 Dispatch 中 self._module_dict) 文件 "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py",第 2299 行,在 ExecuteCGI 中 os.environ.update(env) 文件 "/usr/lib64/python2.6/os.py",第 486 行,在 update 中 self[k] = dict[k] 文件 "/usr/lib64/python2.6/os.py",第 471 行,在 setitem 中 putenv(key, item) UnicodeEncodeError: 'ascii' 编码器无法在位置 19 编码字符 u'\xe1':序号不在范围内(128)

我现在的 Django 版本是 1.3.0 alpha,但我最开始测试的是 1.1.1,结果也出现了同样的错误。命令 manage.py runserver 运行得很好,我没有在项目目录里做任何更改,只是下载、解压并运行了服务器。我还尝试过部署这个项目(当然在修改了 app.yaml 文件之后),但又出现了其他错误。

有没有人知道可能发生了什么?我尝试了我所知道的所有方法,整整花了 7 个小时,但我还是有点菜。提前谢谢大家。

2 个回答

0

问题正是Marc所说的。你在应该使用ASCII字符的地方用了一个unicode字符。这可能是在某个配置文件里,或者是在数据库的数据中。检查一下你的文件夹结构,看看你编辑过的文件,找找看有没有这个问题。连接到数据库,检查一下你最近添加的数据,看看有没有这个字符。

我不知道这个应用是怎么工作的,但可以肯定的是,你在某个地方写了这个á字符(假设应用的代码是没问题的)。

1

好吧,u'\xe1' 是一个带重音符的小写字母A,也就是á。

所以我猜可能是你在配置文件中用了这个字符,或者你的项目存放在一个包含这个字符的目录里?然后应用引擎试图在环境变量名中使用这个字符,而环境变量名必须是ASCII字符。

撰写回答