Question

L'inputStream que je reçois d'une demande de post via EXTJS est dans le codage CP1252. Comment décoder l'entrée InputSteam afin que je puisse utiliser la chaîne JSON et la convertir au bean Java approprié.

J'ai découvert l'encodage en utilisant la méthode GetEncoding () de InputStreamReader.

Extjs envoie les données dans le format suivant:

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

Besoin de le convertir en:

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

La solution

Ce n'est pas un personnage codant dans le sens normal des caractères aux octets. C'est une forme de s'échapper. Probablement URL s'échapper. Voir si java.net.urldecoder aide.

La méthode InputStreamReader.GetEncoding () vous indique uniquement que le codage que le lecteur utilise pour décoder les octets du flux d'entrée sous-jacent, et cela est spécifié au moment de la construction, ou défini sur la plate-forme par défaut s'il est omis. Il ne vous dit rien sur le codage réel des personnages dans le flux d'octets sous-jacent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top