我使用HtmlCleaner
來刮掉Android中的ISO-8859-1
編碼網站。非英文字符在Android上使用HtlmCleaner解碼不正確
我已經在導入到我的Android應用程序的外部文件jar
中實現了這一點。
當我在Eclipse中運行單元測試時,它處理挪威字母(æ,ø,å
)正確(我可以在調試器中驗證),但在Android應用程序中,這些字符看起來像倒轉的問號。
如果我將調試器附加到我的Android應用程序,那麼在Eclipse中運行單元測試時,可以發現這些字母在他們很好的相同位置是不正確的,所以它不是Android中的顯示/呈現/視圖問題應用程序。
當我複製從調試器的文本,我得到這些結果:
Java進程(單元測試):«Blårek»,«尼»
Android的過程(在模擬器): «Bl rek»,« Benny »
我希望這些St戒指是平等的,但請注意Android中反轉問號是如何重複「å」的。
我試過運行htmlCleaner.getProperties().setRecognizeUnicodeChars(true)
沒有任何運氣。另外,我沒有找到在html清理器中強制使用UTF-8或ISO-8859-1編碼的方法,但我不確定這是否會有所作爲。
下面是我的代碼運行:
HtmlCleaner htmlCleaner = new HtmlCleaner();
// connect to url and get root TagNode from HtmlCleaner
InputSteram is = new URL(url).openConnection().getInputStream();
TagNode rootNode = htmlCleaner.clean(is);
// navigate through some TagNodes, getting the ContentNode
ContentNode cn = rootNode...
// This String contains the incorrectly decoded characters on Android.
// Good in Oracle JVM though..
String value = cn.toString().trim();
有誰知道什麼可能導致解碼behavoir是在Android上有什麼不同?我猜這兩個環境的主要區別在於Android應用程序使用Android的java.io堆棧,而我的單元測試使用Sun/Oracle的堆棧。
感謝,
蓋爾