1

我通过 ExtJS 从发布请求中收到的 Inputstream 采用 CP1252 编码。我如何解码 Inputsteam 以便我可以使用 json 字符串并将其转换为适当的 java bean。

我通过使用 InputStreamReader 的 getEncoding() 方法找到了编码。

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"}]
4

1 回答 1

2

这不是正常的字符到字节意义上的字符编码。这是某种形式的逃避。可能是 URL 转义。看看java.net.URLDecoder是否有帮助。

InputStreamReader.getEncoding() 方法只告诉您阅读器用于解码来自底层输入流的字节的编码,这是在构造时指定的,或者如果省略则设置为平台默认值。它没有告诉您有关底层字节流中字符的实际编码的任何信息。

于 2011-03-23T18:13:05.193 回答