webview中引入了http://www.cnbeta.com/js/tem.js?v=0921的js代码
并且用webview.loadDataWithBaseURL("http://www.cnbeta.com/", html, "text/html", "UTF-8", null)的方式加载
类似http://www.cnbeta.com/comment/normal/187560.html的页面在点击“回复”“支持”之类的就会显示乱码
应该是JavaScript的innerHtml方法改变html代码所造成的
但是 无法统一显示网页所有内容(就是乱码咯)
String html = 
"<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=gb2312\" />" +
"<link href=\"/styles/news.css?v=071027\" rel=\"stylesheet\" type=\"text/css\">" +
"<script language=\"javascript\" type=\"text/javascript\" src=\"/js/tem.js?v=0921\"></script>" +
"</head><body>" + makeHtml(s) + "</body></html>"; webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDefaultTextEncodingName("GB2312");
webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
webview.getSettings().setPluginsEnabled(true); webview.loadDataWithBaseURL("http://www.cnbeta.com/", html, "text/html", "GB2312", null); // 设置Web视图
setContentView(webview);

解决方案 »

  1.   

    网上有第三方的探url编码格式的jar,显示网站信息前,最好新确认编码。
    然后再用确定的编码进行显示。
    某些情况下,不需要探知
      

  2.   


    用ie打开吧,chrome暂时不知道怎么改编码,ie打开选择自动编码,或者utf-8,就ok,但是javascript引入就会出现乱码...
      

  3.   

    问题是javascript引入的中文和页面中文的编码集不同,javascript引入的是gb2312,而页面是utf-8...