Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UTF-8 not encoding html in webview android

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.

like image 708
vyas Avatar asked Jan 23 '13 07:01

vyas


2 Answers

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.

like image 142
Derzu Avatar answered Oct 27 '22 13:10

Derzu


Could you try and check:

myWebVeiw.loadDataWithBaseURL("file:///android_asset/"+totaldays+".html", null, "text/html", "utf-8",null);
like image 41
Paresh Mayani Avatar answered Oct 27 '22 15:10

Paresh Mayani