2013-06-05 49 views
4

我的谷歌应用程序引擎应用程序存在严重问题。到目前为止,我在数据库上存储的任何东西都是英文的。现在我必须在希腊语上存储一些东西,当我稍后从数据库中尝试检索它时,我有一个“u'\ u039a \ u03b9 \ u03c1 \ u03cc \ u03c2'”而不是字符串。不能在数据存储区中存储希腊文

直到现在,当我想放的东西上的HTML我用下面的一个

error = unicode(error,"utf-8") 

但我想它把它的权利之前,我将它存储上的数据,但不利于

编辑:

我刚才看到的东西,弄得我更多。这些字符串我从html表单中获得。我有很多投入,希腊的工作很棒。但那些造成这个问题的人,都在一个“选择”标签上,我可以得到所有选择的列表。其他输入存储在希腊语数据库中没有任何问题。

编辑2:

我想编辑从意见的东西。我犯了一个错误。如果我打印这个变量,我可以看到没有问题的字符串。但是如果我self.response.out.write(thestring),我看到%CE%9%CE%BF%CE%B9%CE%BD%CF%89%CE%BD%CE%B9%CE%BA% CE%AC

+0

您正在使用哪个版本的Python? Python 3.x处理unicode与2.x不同。 – jpaugh

+0

此外,我很确定Python的repl不会在unicode打印的时候解码('u“...”'表单)。当你打印它时它工作吗?如果没有,你必须设置输出文件的编码(比如'sys.stdout')。 – jpaugh

+0

我有python 2.7。此外,如果我尝试打印它,则看起来如下所示:%CE%9A%CE%BF%CE%B9%CE%BD%CF%89%CE%BD%CE%B9%CE%BA%CE%AC – Tasos

回答

0

我可以存储和谷歌应用程序引擎检索希腊,但它并没有为我工作,要么到我这样做:

name = unicode(form.name.data, "utf8")

我可以存储在谷歌应用程序引擎希腊为什么不像我这样做。说起来容易做起来难,但到处都是使用utf-8,然后才能正常工作。您需要为您的网页的代码如下所示:

<html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

您还可以根据需要来指导你的输入形式将其编码为UTF-8,但我不AppEngine上做到这一点,我仍然能存储希腊语。我只通过实验发现了这一点,如果你想要这个理论,你可以阅读these slides

+0

我可以存储在希腊语中,但只有简单的输入。如果我从“select”html标记中检索数据,那么这些数据就像我在第一篇文章中所说的那样存储。 – Tasos