WebView 加载html富文本,中文乱码

在真机调试的时候遇到一个问题:
之前用WebView加载html文本的时候,使用的方式:
mWebViewDes.loadData(Html.fromHtml(des).toString(), “text/html”, “UTF-8”);
在华为note8上中文正常显示,
在华为nova2上测试,发现同样的代码在这里出现了乱码
百度搜索发现需要使用下面的方法:
mWebViewDes.loadData(Html.fromHtml(des).toString(), “text/html; charset=UTF-8”, null);

经测试,两边真机均正常显示中文。

================ 2019-09-20补充 ================
使用TextView加载富文本(包含图文)
代码如下(Kotlin写法):
WebView 加载html富文本,中文乱码_第1张图片

 tvHtml.text = Html.fromHtml(contentHtml, Html.FROM_HTML_MODE_COMPACT, Html.ImageGetter { source ->
                    Thread(Runnable {
                        mDrawable.addLevel(0, 0, resources.getDrawable(R.mipmap.ic_launcher))
                        mDrawable.setBounds(0, 0, 200, 200)

                        val bitmap: Bitmap
                        try {
                            bitmap = BitmapFactory.decodeStream(URL(source).openStream())
                            val msg = handler.obtainMessage()
                            msg.what = HANDLER_MESSAGE
                            msg.obj = bitmap
                            handler.sendMessage(msg)
                        } catch (e: Exception) {
                            e.printStackTrace()
                        }
                    }).start()
                    mDrawable
                }, null)

WebView 加载html富文本,中文乱码_第2张图片

private val handler = @SuppressLint("HandlerLeak")
    object : Handler() {
        override fun handleMessage(msg: Message) {
            if (msg.what === HANDLER_MESSAGE) {
                val bitmap = msg.obj as Bitmap
                val drawable = BitmapDrawable(null, bitmap)
                mDrawable.addLevel(1, 1, drawable)
                mDrawable.setBounds(0, 0, bitmap.width, bitmap.height)
                mDrawable.level = 1

                val charSequence = tvHtml.text
                tvHtml.text = charSequence
                tvHtml.invalidate()
            }
        }
    }

说明:
要显示图片需要通过Html.ImageGetter
因为图片是一个URL所以需要下载,是耗时的操作,所以这里开了个子线程进行下载,通过Handler在主线程进行更新文本。参考自:https://www.kaelli.com/21.html

你可能感兴趣的:(异常)