Ich verwende den GAE-Datenspeicher für eine Java-Anwendung und speichere Text in zahlreichen Sprachen. In meinem Servlet, bin ich zum ersten Mal überprüft, um zu sehen, ob es irgendwelche Daten in dem Datenspeicher ist, und, wenn nicht, ich einige, ähnlich den folgende bin erstellen:Google App Engine-Datenspeichercodierung?
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);
}
Da dies JDO mit, ich denke, ich sollte auch die relevent Teile der Lang
Klasse umfassen:
@PersistenceCapable
public class Lang {
@PrimaryKey
private String code;
@Persistent
private String name;
@Persistent
private int popularity;
// getters & setters & constructors...
}
die nicht-ASCII-Zeichen mir jedoch geben Trauer. Ich habe mein Eclipse-Projekt auf die UTF-8-Codierung anstelle der Standard-Cp1252, so dass ich denke Ich bin okay aus dieser Perspektive, aber wenn ich den App Engine Data Viewer verwenden, um meine Daten zu sehen, dass Español Eintrag wird Español, und wenn ich darauf klicke, um es anzuzeigen, erhalte ich einen 500 Server Fehler. (Es gibt einige andere Einträge mit Text von rechts nach links, die nicht einmal im Datenviewer angezeigt werden, sondern ein Problem nach dem anderen ...)
Gibt es etwas Besonderes, was ich in meinem tun kann? Code, um die Zeichenkodierung einzustellen, oder geben Sie GAE an, dass die Daten, die ich speichere, UTF-8 sind? Oder ist das Problem auf der Eclipse-Seite, und sollte ich etwas mit meinem Java-Code machen?
Nicht, dass es eine "Lösung" an sich ist, aber wenn ich die Daten manuell einfüge, wird der Data Viewer verwendet, und mein Servlet, das Daten aus dem Datenspeicher holt und zurückgibt, gibt auch die Daten zurück. Dies könnte meine Lösung werden; Ich brauche nur die anfängliche Ladung von Daten zu tun, und danach wird es nicht aktualisiert werden, so dass es manuell eine Option ist. Obwohl ich lieber wissen wollte, warum die Codelösung nicht funktionierte ... – sernaferna