我想將Windows-1250編碼的html頁面加載到webview中。其實我不喜歡,但我必須。這種編碼的例子可以在here找到。Android webview顯示windows-1250字符集問題html
我可以在任何PC瀏覽器中看到上面的頁面 - android webview也可以正常顯示頁面。
我需要做的是獲取上述頁面的base64編碼版本,並將其從字符串資源加載到webview中。所以,作爲一個測試,我用this online tool獲得編碼的網頁版本中的Base64,添加一個字符串到我的應用程序,並試圖通過
myWebView.loadData(htmlResource, "text/html; charset=Windows-1250", "base64");
,在HTML資源包含base64編碼的HTML源代碼的加載它一個字符串。你可以看到下面的結果,字符編碼顯然搞砸了。
什麼是顯示從base64編碼字符串此頁面的正確方法?
編輯:我也嘗試過this方法,具有相同的結果:
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");
編碼仍然搞砸了,雖然略有不同。
爲什麼'loadDataWithBaseURL()''null'的第一個參數?如果'null'默認爲'about:blank'。你能再次嘗試一下你的真實網址嗎? – 2012-07-08 16:38:03
@HaiBison「你的真實網址」是什麼意思?正如我所提到的,html是一個base64編碼的字符串,我沒有從URL加載它,我將它作爲對SOAP請求的響應。那麼我應該在那裏放置什麼網址? –
對不起,那是我的錯。 (我認爲它是'http:// sandbox.wamped.org/webview.html')。 – 2012-07-09 08:02:17