Расшифруйте Inputsteam с кодировкой CP1252 в Java - PullRequest
1 голос
/ 23 марта 2011

Inputstream, который я получаю из почтового запроса через ExtJS, находится в кодировке CP1252. Как мне декодировать Inputsteam, чтобы я мог использовать строку json и преобразовать ее в соответствующий Java-бин.

Я узнал кодировку с помощью метода getEncoding () InputStreamReader.

ExtJs отправляет данные в следующем формате:

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

Необходимо преобразовать его в:

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

1 Ответ

2 голосов
/ 23 марта 2011

Это не кодировка символов в обычном смысле символов в байтах. Это какая-то форма побега. Вероятно, URL экранирует. Посмотрите, поможет ли java.net.URLDecoder .

Метод InputStreamReader.getEncoding () сообщает вам только о кодировке, используемой читателем для декодирования байтов из базового входного потока, и она указывается во время построения или устанавливается на платформу по умолчанию, если не указана. Он ничего не говорит вам о фактической кодировке символов в базовом потоке байтов.

...