Windows-1250 でエンコードされた html ページを webview にロードしたいと思います。実際、私は好きではありませんが、そうしなければなりません。このエンコーディングの例は、ここにあります。
上記のページはどの PC ブラウザでも正常に表示されます。Android WebView でもページが適切に表示されます。
私がしなければならないことは、上記のページの base64 でエンコードされたバージョンを取得し、それを String リソースから webview にロードすることです。そこで、テストとして、このオンライン ツールを使用して base64 でエンコードされたバージョンのページを取得し、文字列としてアプリケーションに追加して、
myWebView.loadData(htmlResource, "text/html; charset=Windows-1250", "base64");
、ここで htmlResource には、base64 でエンコードされた html ソースが文字列として含まれています。以下の結果を見ることができます。文字エンコーディングは明らかにめちゃくちゃです。
base64 でエンコードされた文字列からこのページを表示する適切な方法は何ですか?
編集:私もこのアプローチを試しましたが、同じ結果が得られました:
String decodedResource = new String(Base64.decode(htmlResource));
mWebView.loadDataWithBaseURL( null, decodedResource, "text/html",
"Windows-1250", null );
EDIT 2:次の変更を加えてsnobluchaの提案も試しましたが、まだ運がありません:
try {
convertedResource = new String(Base64.decode(htmlResource), "windows-1250");
} catch (UnsupportedEncodingException e) {
Log.e("UnsupportedEncodingException", e.getMessage());
}
mWebView.loadData(convertedResource, "text/html", "windows-1250");
少し違いますが、エンコーディングはまだめちゃくちゃです。