Domanda

L'Inputstream che ricevo da una richiesta post tramite EXTJS è nella codifica CP1252. Come faccio a decodificare l'ingresso in modo da poter usare la stringa JSON e convertirla nel fagiolo Java appropriato.

Ho scoperto la codifica utilizzando il metodo GetCoding () di InputStreamReader.

EXTJS invia i dati nel seguente 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

Bisogno di convertirlo in:

[{"StartDate":"2011-03-23T00:00:00","EndDate":"2011-03-23T01:00:00","IsAllDay":false,"CalendarId":1,"Title":"saved"}]
È stato utile?

Soluzione

Questo non è un personaggio che codifica nel normale senso dei caratteri. È una qualche forma di fuga. Probabilmente URL che fugge. Vedi se java.net.urldecoder Aiuta.

Il metodo inputStreamReader.getCoding () indica solo che la codifica che il lettore sta usando per decodificare i byte dal flusso di input sottostante e questo è specificato a tempo di costruzione o impostato sulla piattaforma predefinita se omesso. Non ti dice nulla sulla codifica effettiva dei personaggi nel flusso di byte sottostante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top