如何解决Android WebView出现的乱码问题

如何解决Android WebView出现的乱码问题,第1张

1、webView.loadUrl();直接显示网页内容(单独显示网络图片),一般不会出现乱码。2、webView.loadData(data, "text/html", "UTF-8")loadData主要被设计用来装载URI格式的数据,它不能通过网络来加载内容。网上流传的webview加载中文出现乱码,多数是使用此方法。使用过程中主要有两个问题:(1)loadData不能加载图片内容,如果想加载图片内容或者获得更强大的Web支持建议使用更强大的loadDataWithBaseURL.(2) 许多实用loadData方法的朋友都遇到显示乱码的问题,那是因为编码器设置错误导致的。我们知道String类型的数据主要是unicode编码,而WebView一般为了节省资源使用的是UTF-8编码,所以我们在loadData的时候要告诉方法怎样转码。即要告诉它要将unicode编码的内容转成UTF-8编码的内容。有些朋友虽然在loadData的时候设置了编码方式,但是还是显示乱码,这是因为还需要为WebView的text编码指定编码方式。举例如下:WebView wv = (WebView)findViewById(R.id.webview) wv.getSettings().setDefaultTextEncodingName(“UTF -8”) wv.loadData(content, “text/html”, “UTF-8”) 注意为gb2312或gbk(3).网页说明编码格式 以上两种方法是网上给的比较好的方法,但是我都试了下都没有解决我的乱码问题。 原来我是用LoadData方法来解析html的,但是据说这是官方的一个BUG,不能用来解析中文。所以绕其道而行之,采用loadDataWithBaseURL的方法,其中codeingType设置为utf-8就OK了。3、loadDataWithBaseURL如果单纯显示文字的话可以写webView.loadDataWithBaseURL(null, string, "text/html", "utf-8", null)如果要显示图片可以写webView.loadDataWithBaseURL(baseUrl, string, "text/html", "utf-8", null)其中baseUrl为你存储照片的路径,比如:

webView->page()->mainFrame()->documentElement () 中搜索到需要显示的部分,然后setHtml 追问: 我是在UI上添加一个QWebView控件,然后编译就出现了很多错误 WebView.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QWebView::setUrl(class QUrl const &)" (__imp_?setUrl@QWebView@@QAEXABVQUrl@@@Z) referenced in function "public: void __thiscall Ui_WebView::setupUi(class QWidget *)" (?setupUi@Ui_WebView@@QAEXPAVQWidget@@@Z) 回答: 2014-05-17 17:29 提问者采纳 主要原因是生成的ui_*.h没有更新 这是因为UI界面修改后, 所有的UI控件布局都依赖所生成的Ui_*头文件 你可以自己运行uic工具 当然你也可以当修改后运行下Qmake, 因为Qmake会自动运行Moc和Uic 这样你的Ui文件就更新了 而Shadow build只是辅助工具,用来生成别的版本build的工具而已 当你修改了project选项, 一般来说当你点运行的时候是会重新Qmake一下的, 这样你的UI文件又更新了 有问题HI 追问: 额,不是qmake的原因,网上都说用QWebView需要在.pro文件里加入QT+=webkit,添加响应模块,但是实际上应该添加的语句是QT += webkitwidgets,不知道是不是QT版本更新给改了,我的是5.3版 回答: 那这个我不太清楚,对不起没帮到你


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11350302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存