伝送の過程ではutf-8符号を統一的に採用し,漢字を取得するためにストリームにutf-8符号を採用する
先日dnsインタフェースが変動したため、dns解析業務のテストを手伝いました.伝送中に乱符号化の問題があったため、伝送中にutf-8符号化を統一的に採用しました.漢字を正常に表示するために、伝送中にストリームもutf-8符号化を採用します.
説明:postメソッドでurlにアクセスし、伝送中にストリームはutf-8符号化を採用する.
public static String getPageContent(String url, String strPostRequest) {
String strUrl = url;
//
StringBuffer buffer = new StringBuffer();
System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
System.setProperty("sun.net.client.defaultReadTimeout", "5000");
try {
URL newUrl = new URL(strUrl);
HttpURLConnection hConnect = (HttpURLConnection) newUrl.openConnection();
// POST
if (strPostRequest.length() > 0) {
hConnect.setDoOutput(true);
hConnect.setRequestMethod("POST");
OutputStreamWriter out = new OutputStreamWriter(hConnect.getOutputStream(),"utf-8");
out.write(strPostRequest);
out.flush();
out.close();
}
//
BufferedReader rd = new BufferedReader(new InputStreamReader(hConnect.getInputStream(),"utf-8"));
int ch;
for (int length = 0; (ch = rd.read()) > -1; length++)
buffer.append((char) ch);
rd.close();
hConnect.disconnect();
return buffer.toString().trim();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
説明:postメソッドでurlにアクセスし、伝送中にストリームはutf-8符号化を採用する.