我想将 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 );
编辑 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");
编码仍然混乱,虽然略有不同。