IIS サーバーに HTTP 要求を行う Java アプリケーションでエンコードの問題が発生しています。
URLConnection
オブジェクトのヘッダーを繰り返し処理すると、次の (関連する) ヘッダーが表示されます。
Transfer-Encoding: [chunked]
Content-Encoding: [utf-8]
Content-Type: [text/html; charset=utf-8]
このURLConnection.getContentEncoding()
メソッドは、ドキュメントのエンコーディングとして utf-8 を返します。
これは私のHTTPリクエストとストリームの読み取りが行われている方法です:
OutputStreamWriter sw = null;
BufferedReader br = null;
char[] buffer = null;
URL url;
url = new URL(this.URL);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
sw = new OutputStreamWriter(connection.getOutputStream());
sw.write(postData);
sw.flush();
br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8"));
StringBuilder totalResponse = new StringBuilder();
String line;
while((line = br.readLine()) != null) {
totalResponse.append(line);
}
buffer = totalResponse.toString().toCharArray();
if (sw != null)
sw.close();
if (br != null)
br.close();
return buffer;
ただし、サーバーから送信された次の文字列「ããção」は、クライアントによって「�����o」として受信されます。
私は何を間違っていますか?