UTF-8 not encoding html in webview android

a 夏天 提交于 2019-12-05 00:21:21

问题


I am using the following code for encoding the html file which is in my asset folder. I have gone through various link here but was not successful. Here is my piece of code.

 WebSettings settings = myWebVeiw.getSettings();
    //settings.setJavaScriptEnabled(true);
    //myWebVeiw.getSettings().setJavaScriptEnabled(true);
    settings.setDefaultTextEncodingName("utf-8");
    //settings.setDefaultTextEncodingName("ISO-8859-1");

    myWebVeiw.loadUrl("file:///android_asset/"+totaldays+".html"); 

Although it is working for other characters but it is not able to encode †.as it prints same on the web view. Please suggest me what to do.

Any help will be appreciated.


回答1:


You need to set the WebSettings default text encoding to utf-8. And after force the html header charset to utf-8. Exmple:

String htmlText = "<html> your page here </html>";
WebView web = (WebView) findViewById(R.id.webview); // get your webview from the layout
WebSettings settings = web.getSettings();
settings.setDefaultTextEncodingName("utf-8");
web.loadData(htmlText, "text/html; charset=utf-8", "utf-8");

That works for me on android 2.2.1, 4.0.4 and 4.1.2.




回答2:


Could you try and check:

myWebVeiw.loadDataWithBaseURL("file:///android_asset/"+totaldays+".html", null, "text/html", "utf-8",null);



回答3:


Not so familiar with webView. But the browser parse a html charset encoding following: 1.first charset .so please check the totaldays.html <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 2. according the content.



来源:https://stackoverflow.com/questions/14474223/utf-8-not-encoding-html-in-webview-android

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!