2011-07-23 58 views
0

我正在使用BufferedReader從網址獲取數據。BufferedReader自動編碼類型

URL url = new URL("http://"); 
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "windows-1251")); 

在某些網址的編碼是窗口-1251(cyrilyc),所以我指定的讀卡器。但是在某些情況下,enconding是不同的,例如KOI8-R如何在不使用讀寫器的情況下從兩個源獲取數據?我真的只能在這裏使用一個。

+1

http://stackoverflow.com/questions/499010/java-how-to-determine-the-correct-charset-encoding-of-a-stream –

回答

2

不,BufferedReader無法檢查Content-Enconding標頭。你必須提供。或者使用庫來識別/檢測編碼。

+0

請鏈接? – artouiros

+0

如果您需要一般認證,請嘗試[ICU4J](http://site.icu-project.org/)。如果你需要更多的HTTP/HTML特定的東西,可以試試[Jericho HTML Parser] /http://jericho.htmlparser.net/docs/index.html)[[Source]](http:// jericho。 htmlparser.net/docs/javadoc/net/htmlparser/jericho/Source.html#Source(java.net.URLConnection))類。 還要確保您的JVM支持您的編碼。 –