我通过 ExtJS 从 post 请求收到的输入流采用 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"}]
最佳答案
这不是普通字符到字节意义上的字符编码。这是某种形式的逃避。可能是 URL 转义。看看是否java.net.URLDecoder有帮助。
InputStreamReader.getEncoding() 方法仅告诉您读取器用于解码底层输入流中的字节的编码,这是在构造时指定的,或者如果省略则设置为平台默认值。它不会告诉您有关底层字节流中字符的实际编码的任何信息。
关于java - 在java中使用CP1252编码解码Inputsteam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5409610/