Я использую хранилище данных GAE для приложения Java и храню текст, который будет на многих языках. В моем сервлете я сначала проверяю, есть ли какие-либо данные в хранилище данных, и, если нет, я создаю их, как показано ниже:
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);
}
Поскольку это использует JDO, я полагаю, что я должен включить соответствующие части класса Lang
:
@PersistenceCapable
public class Lang {
@PrimaryKey
private String code;
@Persistent
private String name;
@Persistent
private int popularity;
// getters & setters & constructors...
}
Однако не-ASCII символы вызывают у меня горе. Я настроил свой проект Eclipse на использование кодировки UTF-8 вместо Cp1252 по умолчанию, поэтому я думаю Я в порядке с этой точки зрения, но когда я использую средство просмотра данных App Engine, чтобы посмотреть на мой данные, что запись Español становится Español, и когда я нажимаю на нее, чтобы просмотреть ее, я получаю 500 Server Error. (Существуют некоторые другие записи с текстом справа налево, которые вообще не отображаются в средстве просмотра данных, но одна проблема за раз ...)
Могу ли я что-нибудь особенное сделать в своем коде, чтобы установить кодировку символов или указать GAE, что данные, которые я храню, имеют формат UTF-8? Или проблема на стороне Eclipse, и я должен что-то делать с моим Java-кодом?