En el siguiente ejemplo minimalista:¿Alguien puede aclarar la codificación Unicode de Gson?
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonStuff {
public static void main(String[] args) {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
System.out.println(gson.toJson("Apostrophe: '"));
//Outputs: "Apostrophe: \u0027"
}
}
El apóstrofe es reemplazado por él es la representación Unicode en la impresión. Sin embargo, la cadena devuelta desde el método toJson
literalmente tiene los caracteres '\', 'u', '0', '0', '2', '7'.
La decodificación con json realmente funciona y le da a la cadena "Apostrophe: '" en lugar de "Apostrophe: \ u0027". ¿Cómo debo decodificarlo para obtener el mismo resultado?
Y una pregunta adicional, ¿por qué un carácter unicode aleatorio como ش no se codifica de manera similar?
Gracias! Además, acabo de ver que JsonReader decodifica dichos caracteres utilizando 'JsonReader.readEscapeCharacter()', que en realidad parece bastante complicado. ¡Muchas gracias! – Miquel