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代码应该做些什么?