我在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
但这并没有解决它,所以我非常喜欢som assistence :)
在页面顶部:
<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。
祝你好运!
答案 0 :(得分:0)
使用它:
webview.loadData(html_content,“text / html; charset = utf-8”,“utf-8”);
我测试了它,它确实有用。
答案 1 :(得分:-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");
}