android - 中文 android webView 中字符膨胀的问题

标签 android webview

目前我正在 webview 中设置我的 html 响应,现在,该响应中的中文字符未在我的 web View 中设置,但字符在我的计算机浏览器(如 Mozilla 和 chrome)中设置正确。我对这个“&#32957”有疑问,我的回复如下:

*含虾红素、半胆酸胜肽、维他命C等美容成分
*有帮助整顿皮肤的代谢循环
*抑制黑色素的形成
*打造充盈透亮的美白肌肤
*清新荔枝口味

现在Mywebview的xml如下:

               <WebView
                android:id="@+id/wvProductItem"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

现在我在我的 java 类中设置数据如下:

        String detail=responseFromWeb;        

        wvProductDetail.getSettings().setJavaScriptEnabled(true);
        wvProductDetail.getSettings().setLoadWithOverviewMode(true);
        wvProductDetail.getSettings().setUseWideViewPort(true);
        wvProductDetail.getSettings().setBuiltInZoomControls(false);
        wvProductDetail.getSettings().setSupportZoom(false);
        wvProductDetail.getSettings().setUseWideViewPort(false);
        wvProductDetail.getSettings().setDefaultTextEncodingName("utf-8");
        wvProductDetail.setWebViewClient(new WebViewClient() {

                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {


                    return true;
                }

                @Override
                public void onPageFinished(WebView view, final String url) {
                    Log.i("TAG", "Scroll Bottom:" + scrollView.getBottom());
                    scrollView.postDelayed(new Runnable() {

                        @Override
                        public void run() {
                        scrollView.scrollTo(0, 0);
                        }
                    }, 500);

                }
            });
        wvProductDetail.loadDataWithBaseURL(null,
                    detail, "text/html", "UTF-8", null);

最佳答案

对题

这是转义序列的问题,如果我们写 "&" 然后它会转换为 "&" 但如果你这样写 "& ;#32957" 然后 web View 首先将转义序列 "&" 转换为 "&",然后再转换为 "#32957" unicode 所以结果将是这个 ====== >"肽"

所以上面的问题发生在你身上。

针对您的特定问题的解决方案

您必须将 "&#" 替换为 "&#"

例如。

 wvProductDetail.loadDataWithBaseURL(null,
                    detail.replaceAll("&amp;#", "&#") "text/html", "utf-8", null);

关于android - 中文 android webView 中字符膨胀的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21983666/

相关文章:

Android:防止屏幕方向改变但仍会收到通知

java - 如何在android中转换 "MM/dd/yyyy HH:mm:ss a"的反向时间

Android - 如何从 WebView 中显示的环聊 URL 打开环聊应用程序?

cocoa - 在Cocoa中将内存中的图像插入到Webview中的正确方法?

android - 支持 Android 2.2 中的轮播 View

android - 选项菜单取消事件 [Android]

android - 以编程方式关闭 ActionBar Spinner 或避免打开它

java - 如何在 WebView 中自动填充表单字段?

javascript - 在 Android 6 中将 JavaScript 注入(inject) WebView

Android: WebView 触摸事件监听器