我在向 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”。
我究竟做错了什么 ?