我正在开发一个打开网页的 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/