我将获取 EditText 中的文本,然后在 WebView 中显示该文本。以下代码适用于 ASCII 字符。对于非 ASCII 字符,WebView 中的文本将成为垃圾字符。
String input = mEditText.getText().toString();
String html = makeHTML(input); // append HTML elements and headers including MIME and ENCODING header
mWebView.loadData(html, "text/html", "utf-8");
我以为我的 HTML 做错了,所以我尝试直接在 WebView 中显示文本而不修改文本。但结果是一样的。
String input = mEditText.getText().toString();
mWebView.loadData(input, "text/html", "utf-8");
Toast 的 makeText()
在 EditText 中显示非 ASCII 文本没有任何问题。
有谁知道答案吗?
最佳答案
WebView 可能无法加载某些“不安全”HTML 字符。尝试使用:
String input = mEditText.getText().toString();
String html = makeHTML(input);
String encodedHtml = URLEncoder.encode(html,"UTF-8");
mWebView.loadData(encodedHtml, "text/html", "utf-8");
URLEncoder.decode(encodedHtml,"UTF-8") 方法也可能有用。
关于android - Android EditText 中的文本在 WebView 中变成垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11641811/