5

Webページを開くAndroidプロジェクトに取り組んでいます。ユーザーがインターネットに接続していない場合、リスナーがあります。標準の「ページが見つかりませんでした」というメッセージを表示する代わりに、資産フォルダーに保存されているローカルの html ファイルを webview に提供します。このコード行によって:

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

HTMLファイルでは、エンコーディングと思いますか? 「utf-8」であり、関連する場合はjavascriptで何かを言います。

「ÅÄÖ」を表示する場合を除いて、すべて正常に機能します。これらの文字はすべて「?」に置き換えられます。

誰かが解決策を知っていますか?

ありがとう!

4

2 に答える 2

1

ブラウザー/Webview は、ドキュメントのエンコーディングを通知する必要があります。そうしないと、何らかのエンコーディングを推測するか、デフォルトのエンコーディングを使用しますが、これは間違っている可能性があります。通常、HTTP ヘッダーを使用してエンコーディングを伝えます。ローカル ストレージからファイルを開く場合、明らかに HTTP は関係ありません。したがって、ドキュメントヘッダー自体でエンコーディングを指定する必要があります

<meta http-equiv="Content-Type" content="text/html; charset=ENCODING HERE">

または、HTML 5 ドキュメントの場合:

<meta charset="ENCODING HERE">

宣言が、ドキュメントの実際のエンコード方法と一致していることを確認してください。

于 2012-10-25T13:20:42.477 に答える
0

最近、私もあなたが今持っているのと同じ問題に遭遇しました。特殊文字をHTMLファイルからそれぞれのHTMLコードに変更することで解決しました。グーグルで特殊文字のそれぞれのHTMLコードをすべて取得できますが、このリンクが役立つ場合があります。

于 2012-10-25T13:09:19.737 に答える