1
我的目標是將一個xml feed下載到一個InputStream中,然後將它轉換爲一個String,以便可以與XmlPullParser一起使用。如何確定InputStream編碼?
我轉換的InputStream爲String這樣的:
InputStream input_stream = connection.getInputStream();
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(input_stream,"UTF-8"));
while ((line = br.readLine()) != null) {
sb.append(line);
}
這裏的問題,一些XML飼料定義特定的編碼。以這個例子爲例: http://voxinox.ch/podcasts/valdo/feed.xml
如果我使用默認的「UTF-8」編碼,那麼Feed中的某些字符看上去像一個帶有問號的黑色菱形形狀。如果我使用在xml頭文件中指定的編碼(iso-8859-1),這並不意外。
在我開始閱讀包含編碼規範的輸入流之前,我該如何決定使用哪種編碼?有沒有更好的方法來做到這一點?
在XML得到編碼得到元信息前面像<?XML版本= 「1.0」 編碼= 「UTF-8」?>。您應該使用元信息中的編碼值進行正確編碼。例如,voxinox.ch/podcasts/valdo/feed.xml是編碼<?xml version =「1.0」encoding =「iso-8859-1」?> – eurosecom 2015-03-25 07:21:15
同意,我正在尋找一種方法來解碼我的inputStream與編碼值,但是我需要在訪問inputStream之前指定編碼,有點雞和蛋的情況。 – Whome 2015-03-26 01:32:39
顯然有第一個蛋。對於XML輸入流<?xml version =「1.0」encoding =「iso-8859-1」?>對於所有類型的編碼都是相等的。首先閱讀標籤編碼,然後再用正確的編碼再次閱讀。 – eurosecom 2015-03-26 09:11:45