【发布时间】:2013-06-01 11:00:13
【问题描述】:
我的 Google App Engine 应用存在严重问题。到目前为止,我存储在数据库中的所有内容都是英文的。现在我必须用希腊语存储一些东西,当我稍后尝试从数据库中检索它时,我有一个 u'\u039a\u03b1\u03b9\u03c1\u03cc\u03c2' 而不是字符串。
直到现在,当我想在 html 上放一些东西时,我使用了以下一个
error = unicode(error,"utf-8")
但我在将其存储到数据之前尝试将其正确放置,但无济于事
编辑:
我只是看到了一些让我更困惑的东西。我从 html 表单中获取这些字符串。我有很多输入希腊语效果很好。但是那些造成问题的人在"select" 标签上,我在其中获得了所有选择的列表。其他输入以希腊语存储在数据库中,没有任何问题。
编辑 2:
我想从 cmets 编辑一些东西。我犯了一个错误。如果我打印变量,我可以毫无问题地看到字符串。但是如果我self.response.out.write(thestring),我看到%CE%9A%CE%BF%CE%B9%CE%BD%CF%89%CE%BD%CE%B9%CE%BA%CE%AC
【问题讨论】:
-
您使用的是哪个版本的 Python? Python 3.x 处理 unicode 与 2.x 不同。
-
另外,我很确定 Python 的 repl 在漂亮打印时不会解码 unicode(
u"..."表单)。当你print它时它是否有效?如果没有,您必须设置输出文件的编码(例如,sys.stdout)。 -
我有 python 2.7。另外,如果我尝试打印它,它看起来像这样 %CE%9A%CE%BF%CE%B9%CE%BD%CF%89%CE%BD%CE%B9%CE%BA%CE%AC跨度>
-
对GAE没有太多经验,但是我在MySQL中存储Unicode文本时遇到了同样的问题,通过将连接字符串中的“characterEncoding”和“characterSetResult”设置为“utf8”来解决两者,并将“useUnicode”设置为“true”。可能根本不是你的问题,但我扯了 2 周的头发,以为这是来自另一个系统的编码问题,只是找到了一个更简单的解决方法。
-
好的。问题是您需要执行以下一项或两项操作:a)解码字符串,或b)设置文件句柄的输出编码。然而,这些天我不记得太多 Python 了!祝你好运。
标签: python google-app-engine python-2.7 jinja2