0

将 blob (byte[]) 存储到 Google App Engine 数据存储区后,我得到一个“?” 在从 Datastore 获取相同的数据后附加到我的数据中。

我有一个想法,这与编码有关,因为我不确定 GAE 默认编码是什么,所以我尝试了几个字符集并得到不同的结果,我想如果我分享这个,我可以更清楚地解决这个问题.

在我的 DBHelper 类(用于保存和获取数据的实用程序)中,当我最初使用以下方法保存数据时:

Entity resultEntity = new Entity("Entity");
resultEntity.setProperty("HtmlResult", new Blob(str.getBytes()))

我得到一个'?附加到我的结果的末尾(从本地数据存储中获取的数据)

将我的代码更改为以下内容后:

resultEntity.setProperty("HtmlResult", new Blob(str.getBytes(Charset.forName("UTF-8"))));

然后我将 �� 附加到结果中。

另外,我想当我使用 时ISO-8859-1,我有�。很抱歉不确定,但我每次都必须部署到 GAE 才能进行测试。

这个问题与托管 GAE 中的数据存储区有关 - Google 应用程序引擎附加“?” 数据检索期间的字符,但不是直接的。

请提出您的建议。

FY:我也试过

<env-variables>
 <env-var name="DEFAULT_ENCODING" value="UTF-8" />
</env-variables> 

请注意,我在本地机器上没有这个问题,只有当我在 Google 应用引擎上部署和测试我的应用时。

4

1 回答 1

0

这将有所帮助:http: //blog.notdot.net/2010/07/Getting-unicode-right-in-Python

于 2012-05-06T19:00:51.997 回答