Google App Engine数据存储编码?

ser*_*rna 5 java google-app-engine character-encoding google-cloud-datastore

我正在将GAE数据存储区用于Java应用程序,并存储一些将使用多种语言的文本.在我的servlet中,我首先检查数据存储中是否有任何数据,如果没有,我正在创建一些数据,类似于以下内容:

ArrayList<Lang> list = new ArrayList<Lang>();
list.add(new Lang("EN", "English", 1));
list.add(new Lang("ES", "Español", 0));
//more languages here...

PersistenceManager pm = PMF.get().getPersistenceManager();
for(Lang l : list) {
  pm.makePersistent(l);
}
Run Code Online (Sandbox Code Playgroud)

由于这是使用JDO,我想我也应该包括Lang该类的相关部分:

@PersistenceCapable
public class Lang {
 @PrimaryKey
 private String code;
 @Persistent
 private String name;
 @Persistent
 private int popularity;
// getters & setters & constructors...
}
Run Code Online (Sandbox Code Playgroud)

但是,非ASCII字符让我感到悲伤.我已经将我的Eclipse项目设置为使用UTF-8编码而不是默认的Cp1252,所以我认为从这个角度来看我没问题,但是当我使用App Engine数据查看器查看我的数据时,该Español条目变为Español,当我点击它查看它时,我得到500服务器错误.(还有一些其他条目,从右到左的文本根本不会出现在数据查看器中,但一次只出现一个问题......)

我可以在代码中设置字符编码,或指定GAE我存储的数据是UTF-8吗?或者是Eclipse方面的问题,我的Java代码应该做些什么?

ZZ *_*der 0

您确定您的数据有问题吗?我之前也遇到过类似的问题,但事实证明这是Python版本的数据查看器的问题。我可以用 Java 很好地检索数据。