JavaでのCP1252エンコードを使用した入力ステームをデコードします
質問
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"}]
解決
それは、通常のchars-to-bytesの意味でエンコードするキャラクターではありません。それは何らかの形の逃亡です。おそらくURLが逃げます。かどうかを確認します java.net.urldeCoder 役立ちます。
inputStreamReader.getEncoding()メソッドは、基礎となる入力ストリームからバイトをデコードするために読者が使用しているエンコードを使用していることのみを示します。これは、構築時に指定されているか、省略されている場合はプラットフォームのデフォルトに設定されます。基礎となるバイトストリーム内の文字の実際のエンコードについては何も教えてくれません。
所属していません StackOverflow