将 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 应用引擎上部署和测试我的应用时。