1

ExtJSを介してPOSTリクエストから受け取るInputstreamは、CP1252エンコーディングです。Json文字列を使用して適切なJavaBeanに変換できるように、Inputsteamをデコードするにはどうすればよいですか。

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 に答える