我想使用openConnection下載並保存xml文件。openConnection使用UTF-8獲取xml
問題是,當我保存文件,有錯誤的字符集。
我的代碼是:
URL url = new URL(partnersEntity.getUrl());
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Content-Length", "500000");
urlConnection.setRequestProperty("Accept-Charset", "UTF-8");
urlConnection.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
Timestamp currentTimestamp = new Timestamp(now.getTime());
File file = new File(myFile);
FileWriter writer = new FileWriter(file);
IOUtils.copy(urlConnection.getInputStream(), writer);
writer.close();
後,在我的文件,我看到痕跡,如 「??」在特殊的包機地方。
我應該改變什麼?
由於他*將數據作爲二進制流獲取並且只是想寫入一個文件,根本不需要涉及'Writer'或編碼:他應該將它寫成流(就像@jtahlborns answer顯示)。 – 2013-03-01 15:15:56
是的,你是對的。將它作爲字節流保留得更加優雅。希望我想到了這一點....但是,如果你確實想要處理字符(並且有些情況下你想這樣做),那麼這裏的教訓是明確地說明字符編碼,而不要使用FileWriter。 – AgilePro 2013-03-01 15:18:53