爲什麼這個輸入流沒有返回正確的字符? Código使用UTF-8InputStream特殊字符UTF-8
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setRequestProperty("Accept-Charset", "UTF-8");
// Starts the query
conn.connect();
InputStream stream = conn.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead = stream.read(buffer);
String page = new String(buffer, 0, bytesRead, "UTF-8");
//Page is returning, C�digo instead of Código
我用一個encodingfilter(Spring)解決了類似的問題。 –
大概是因爲服務器忽略了你的「接收字符集」的偏好,並在不同的編碼發送的消息。 – wero
爲了說明這一點,你必須看看響應的'內容Type'頭知道實際上正在使用哪個字符集。再看'conn.getHeaderFieldKey()'和'conn.getHeaderField()'方法來發現標頭值,則提取其'charset'屬性(或者如果不存在默認它),並使用流數據轉換成字符串時。 –