1

我在我的 Android 应用程序中对网页的一部分进行编码时遇到问题。我所拥有的是一个收集网页的一部分并将其显示给用户的应用程序。对于这个问题,假设我有一个带有文本的网页,文本下方有一个表格,表格下方有很多我不感兴趣的垃圾。所以我选择使用第一个位置查看什么元素(例如唯一的标签)和结束位置(相同的,唯一的东西。使用带有开始/结束位置的输入流读取器。

然后在我的字符串(“字符串”)中运行:

String s = Uri.encode(string);

然后相应地使用字符串 s:

web.loadData(s, "text/html","ISO-8859-1");

但这在文本中间给了我一些不需要的字符:“”出现。我试图在字符串中运行 .replace("Â", ""); 但这并不能解决问题。

我也试过以下:

web.loadData(s, "text/html", "UTF-8");

web.loadData(s,"text/html;utf-8",null);

但是“”和一两个“*”仍然出现?

一直在网上搜索并找到:loadDataWithBaseUrl但这也不能解决它,所以我非常想要一些帮助:)

在页面顶部:

<html xmlns="http://www.w3.org/1999/xhtml" lang="sv-se" dir="ltr">

在另一页上:

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" dir="ltr">

所以我有一个英文页面和一个瑞典文页面,但错误是关于两个 url:s。

此致!

4

2 回答 2

0

用这个:

webview.loadData(html_content, "text/html; charset=utf-8", "utf-8");

我测试了它,它可以工作。

于 2014-05-06T13:47:37.467 回答
-1

这段代码对我有用。

String base64EncodedString = null;
                        try {
                            base64EncodedString = android.util.Base64.encodeToString((preString+mailContent.getBody()+postString).getBytes("UTF-8"), android.util.Base64.DEFAULT);
                        } catch (UnsupportedEncodingException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                        if(base64EncodedString != null)
                        {
                            wvMailContent.loadData(base64EncodedString, "text/html; charset=utf-8", "base64");  
                        }
                        else
                        {
                            wvMailContent.loadData(preString+mailContent.getBody()+postString, "text/html; charset=utf-8", "utf-8");
                        }
于 2013-09-04T04:27:37.437 回答