java - html webview中的奇怪字符

标签 java android html utf-8 webview

我正在开发一个打开网页的 android 项目。如果用户没有互联网连接,我有一个监听器。我没有显示标准的“找不到页面”,而是给 webview 一个存储在我的 Assets 文件夹中的本地 html 文件。通过这行代码:

web.loadUrl("file:///android_asset/html/404error.html");

在 HTML 文件中,我认为是编码?是“utf-8”,如果相关的话,它会用 javascript 表示一些内容。

一切正常,除了显示“ÅÄÖ”时,所有这些字符都被“?”替换了

有人知道解决方案吗?

谢谢!

最佳答案

浏览器/Webview 需要被告知文档的编码,否则它会猜测一些编码或使用默认编码,这可能是错误的。通常您使用 HTTP header 传达编码。如果您从本地存储打开文件,显然不涉及 HTTP。因此,您需要使用

在文档 header 本身中指定编码
<meta http-equiv="Content-Type" content="text/html; charset=ENCODING HERE">

或者,对于 HTML 5 文档:

<meta charset="ENCODING HERE">

确保声明与文档的实际编码方式相匹配。

关于java - html webview中的奇怪字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069043/

相关文章:

javascript - 我需要制作一个警告框,显示用户在评论部分输入的内容

Java 小程序在调用 javascript 函数时使 ubuntu 上的 chrome java 崩溃

java - 使用 shell 脚本启动和终止 java 应用程序 (Debian)

java - Android:使用按钮更新 UI?

java - 如何包含文件中的类路径?

android - 在 Android 中自定义工具栏的问题

Android:具有具有完全相同 ID 的元素的不同布局 - 有效,但为什么呢?

java - 无法使用异步任务将图像移动到图库中的另一个文件夹

html - 在列内水平对齐 div

python - 从html文件中导入表的行作为python中的列表