android - Android EditText 中的文本在 WebView 中变成垃圾字符

标签 android html encoding android-edittext

我将获取 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/

相关文章:

java - Firebase (Android) : image not being displayed on my listView, 一旦我第一次将它上传到存储

android - 如何在单击 ListView 项时播放声音?

javascript - jQuery:无法在 Chrome 上运行 $.get (http get)

javascript - HTML5 音频对象 - 支持哪些 WAV 格式?

google-app-engine - App Engine 开发服务器编码

android - 如何在我制作的位图按钮 java 源代码中找到布局的 ID

android - Firebase 身份验证 android.view.View$OnClickListener 错误消息

HTML CSS 列表样式更改

php - 无论窗口大小如何,我都需要将背景颜色灰色向下移动以覆盖页面的长度

ruby - Ruby中如何处理 ""等字符