我正在使用以下方法從HTTP服務器讀取txt文件。轉換爲UTF-8
public static String getHtmlFromUrl(String strUrl, String referer, boolean isMobile) {
URL url = null;
BufferedReader reader = null;
StringBuilder sb = null;
String returnValue = "";
try {
url = new URL(strUrl);
URLConnection con = url.openConnection();
// force server to mimic specific Browser
con.setRequestProperty("User-Agent", userAgent);
if(isMobile)
con.setRequestProperty("User-Agent", userAgentMobile);
con.setRequestProperty("Referer", referer);
con.setReadTimeout(15000);
con.connect();
reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
sb = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
returnValue = sb.toString();
} catch(Exception e) {
e.printStackTrace();
} finally {
if(reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return returnValue;
}
我沒有直接訪問此文件(所以我不能改變它的方式)。如果我在瀏覽器中調用URL,它將使用ISO-8859或Windows-1252編碼正確顯示。
Android似乎默認將它解釋爲utf-8。所以我需要一種方法將returnValue
或StringBuffer sb
從現有的ISO-8859編碼轉換爲utf-8。
我該怎麼做?
'new InputStreamReader(con.getInputStream(),「UTF-8」)'是一種定義輸入編碼的方法。看看文檔:http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html – Nico