Pregunta

La entrada de entrada que recibo de una solicitud posterior a través de EXTJS está en la codificación CP1252. ¿Cómo decodico el InputSteam para poder usar la cadena JSON y convertirla en el Java Bean apropiado?

Descubrí la codificación utilizando el método GetEncoding () de InputStreamReader.

ExtJS envía los datos en el siguiente formato:

recordsToSend=%5B%7B%22StartDate%22%3A%222011-03-23T00%3A00%3A00%22%2C%22EndDate%22%3A%222011-03-23T01%3A00%3A00%22%2C%22IsAllDay%22%3Afalse%2C%22CalendarId%22%3A1%2C%22Title%22%3A%22saved%22%7D%5D

Necesita convertirlo a:

[{"StartDate":"2011-03-23T00:00:00","EndDate":"2011-03-23T01:00:00","IsAllDay":false,"CalendarId":1,"Title":"saved"}]
¿Fue útil?

Solución

Ese no es un personaje que codifique en el sentido normal de Chars-bytes. Es una forma de escapar. Probablemente la URL escape. Ve si java.net.urldecoder ayuda.

El método inputStreamReader.getEncoding () solo le indica que la codificación que el lector está utilizando para decodificar los bytes de la secuencia de entrada subyacente, y esto se especifica en el tiempo de construcción, o se establece en la plataforma predeterminada si se omite. No te dice nada sobre la codificación real de los personajes en la transmisión de bytes subyacente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top