我有一个应用程序,其中有几个WebView,每个都显示一段描述文本。几乎所有这些都有乱码,通常是单引号或双引号。
例如,一个字符串应如下所示:
身体'N'空间
在WebView中看起来像这样:
身体ÂNÂ空间
这是我第一次尝试的内容:
textWebView.loadData(getHtmlDescription(), "text/html", "UTF-8");
我最终尝试了许多解决方案,包括以下内容:
在loadData
:
WebSettings webSettings = textWebView.getSettings();
webSettings.setDefaultTextEncodingName("UTF-8");
将loadData
更改为loadDataWithBaseURL
:
WebSettings webSettings = textWebView.getSettings();
webSettings.setDefaultTextEncodingName("UTF-8");
textWebView.loadDataWithBaseURL(null, getHtmlDescription(), "text/html", "UTF-8", null);
将"text/html"
更改为"text/html; charset=UTF-8"
:
WebSettings webSettings = textWebView.getSettings();
webSettings.setDefaultTextEncodingName("UTF-8");
textWebView.loadDataWithBaseURL(null, getHtmlDescription(), "text/html; charset=UTF-8", "UTF-8", null);
不幸的是,这些解决方案都没有成功!
答案 0 :(得分:1)
在尝试所有这些解决方案但没有成功之后,我最终试图找到并替换我能看到的所有不良角色。这太麻烦而且效率低下,但不知怎的,我偶然发现以下两线修复工作完成了所有工作!
在我的getHtmlDescription()
方法中,我添加了以下两行:
description = description.replace("Â", "");
description = Html.fromHtml(description, Html.FROM_HTML_MODE_LEGACY).toString();
return description;