我想使用UTF-8在webview中加载网站,因为我遇到了重音问题,因此我正在尝试:
myWebView.loadDataWithBaseURL("http://www.planalto.gov.br/ccivil_03/constituicao/constituicaocompilado.htm", "", "text/html", "UTF-8", null);
但是结果是黑屏。
如果我使用loadURL(“ site”),它会加载,但是我有加重问题。有什么想法吗?
编辑-
我的网络视图设置:
WebView myWebView = findViewById(R.id.webView1);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCacheEnabled(true);
webSettings.setDefaultTextEncodingName("utf-8");
myWebView.setWebViewClient(new MyWebViewClient());
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
答案 0 :(得分:2)
您将需要使用loadUrl
来加载链接。
loadDataWithBaseUrl
并不意味着将给定的baseUrl
加载到WebView
中。这意味着将您作为data
传递的数据加载到WebView
(documentation)中。假设您要拥有“ Hello World!”用您的WebView
编写:
webview.loadDataWithBaseURL(url, "<html><body>Hello World.</body></html>", null, "UTF-8", null)
关于编码:使用loadUrl
时,无需显式设置UTF-8
,因为it is the default。使用ISO-8859-1
适用于您要加载的特定页面:
webSettings.defaultTextEncodingName = "ISO-8859-1"