目前我正在 webview 中设置我的 html 响应,现在,该响应中的中文字符未在我的 web View 中设置,但字符在我的计算机浏览器(如 Mozilla 和 chrome)中设置正确。我对这个“肽
”有疑问,我的回复如下:
*含虾红素、半胆酸胜肽、维他命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("&#", "&#") "text/html", "utf-8", null);
关于android - 中文 android webView 中字符膨胀的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21983666/