とAndroid上で間違ってデコードされている私は、AndroidでISO-8859-1
エンコードされたウェブサイトをこすりするHtmlCleaner
を使用しています。英語以外の文字はHtlmCleaner
Androidアプリにインポートする外部jar
ファイルにこれを実装しました。
Eclipseで単体テストを実行すると、ノルウェー語の文字(æ,ø,å
)が正しく処理されますが(デバッガで確認できます)、Androidアプリではこれらの文字は逆の疑問符のように見えます。
Androidアプリにデバッガを接続すると、Eclipseのユニットテストを実行しているときと同じ場所にこれらの文字が正しくないことがわかります。Androidでの表示/レンダリング/表示の問題ではありませんアプリ。
私はこれらの結果を得るデバッガからテキストをコピー:
Javaプロセス(ユニットテスト)を:«Blårek»、«ベニー»
(エミュレータで)Androidのプロセス: «Bl rek»,«ベニー»
これらの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上で異なることが原因となるものを知っていますか?私は、2つの環境の主な違いは、私のユニットテストでSun/Oracleのスタックを使用している間に、AndroidアプリケーションがAndroidのjava.ioスタックを使用していることです。
おかげで、
ゲイル