我通过ExtJS从发布请求收到的输入流采用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"}]
答案 0 :(得分:2)
这不是正常字符到字节意义上的字符编码。这是某种形式的逃避。可能是网址转义。看看java.net.URLDecoder是否有帮助。
InputStreamReader.getEncoding()方法仅告诉您读取器用于解码基础输入流中的字节的编码,这是在构造时指定的,或者如果省略则设置为平台默认值。它没有告诉你有关底层字节流中字符的实际编码的信息。