Estoy utilizando el almacén de datos GAE para una aplicación Java y el almacenamiento de texto que estará en varios idiomas. En mi servlet, estoy primera comprobación para ver si hay algún dato en el almacén de datos, y, si no, estoy creando algunos, similar a la siguiente:¿Codificación del almacén de datos de Google App Engine?
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);
}
Dado que este es el uso de JDO, me creo que debería incluir las partes relevantes de la clase Lang
también:
@PersistenceCapable
public class Lang {
@PrimaryKey
private String code;
@Persistent
private String name;
@Persistent
private int popularity;
// getters & setters & constructors...
}
sin embargo, los caracteres no ASCII me están dando dolor. He configurado mi proyecto Eclipse para que use la codificación UTF-8 en lugar del Cp1252 predeterminado, por lo que creo que Estoy bien desde esa perspectiva, pero cuando uso el Visor de datos de App Engine para ver mis datos, eso English la entrada se convierte en español, y cuando hago clic en ella para verla, aparece un error de 500 Server. (Hay algunas otras entradas con texto de derecha a izquierda que ni siquiera aparecen en el visor de datos, pero un problema a la vez ...)
¿Hay algo especial que pueda hacer en mi código para establecer la codificación de caracteres, o especificar a GAE que los datos que estoy almacenando son UTF-8? ¿O está el problema en el lado de Eclipse, y hay algo que debería estar haciendo con mi código de Java?
No es una "solución" per se, pero si inserto los datos manualmente, usando el Visor de datos, se inserta bien, y mi servlet que extrae datos del almacén de datos y lo devuelve también devuelve los datos correctamente. Esto puede convertirse en mi solución; Solo necesito cargar la carga inicial de datos, y después de eso no se actualizará, por lo que hacerlo manualmente es una opción. Aunque preferiría saber por qué la solución de codificación no funcionaba ... – sernaferna