2013-01-23 12 views
5

私の資産フォルダにあるhtmlファイルをエンコードするのに、次のコードを使用しています。 ここにいろいろなリンクがありますが、成功しませんでした。 ここに私のコードがあります。UTF-8はwebviewのhtmlエンコーディングではありません

WebSettings settings = myWebVeiw.getSettings(); 
    //settings.setJavaScriptEnabled(true); 
    //myWebVeiw.getSettings().setJavaScriptEnabled(true); 
    settings.setDefaultTextEncodingName("utf-8"); 
    //settings.setDefaultTextEncodingName("ISO-8859-1"); 

    myWebVeiw.loadUrl("file:///android_asset/"+totaldays+".html"); 

それは他の文字のために働いているが、それがWebビューに同じプリントするの.asのâ€エンコードすることはできませんが。 どうすればいいか教えてください。

ご協力いただければ幸いです。

答えて

1

あなたは試してみてチェックすることができ:WebViewのと

myWebVeiw.loadDataWithBaseURL("file:///android_asset/"+totaldays+".html", null, "text/html", "utf-8",null); 
+0

はい私はすでに試してみましたが、何も表示されません。これは、htmlが正しくデコードされない可能性があります。 – vyas

+0

これはhtmlを表示していません – ArdaA

0

ので、慣れていません。 しかし、ブラウザは次のようにhtml charsetエンコーディングを解析します。 1.first charset .so <meta http-equiv="Content-Type" content="text/html; charset=utf-8">.2.内容に基づいて確認してください。

+1

私の場合、メタは助けになりません。それは静的なHTMLですので、私はそれを試してみました。クライアントのために待っています。私はこれが悪いHTMLデコードフォームのクライアントかもしれないと思うなぜAndroid側でエンコードしていないthats。 – vyas

10

WebSettingsのデフォルトのテキストエンコーディングをutf-8に設定する必要があります。その後、htmlヘッダーの文字セットをutf-8に強制します。例:

String htmlText = "<html> your page here </html>"; 
WebView web = (WebView) findViewById(R.id.webview); // get your webview from the layout 
WebSettings settings = web.getSettings(); 
settings.setDefaultTextEncodingName("utf-8"); 
web.loadData(htmlText, "text/html; charset=utf-8", "utf-8"); 

Android 2.2.1,4.0.4,4.1.2で動作します。

+3

と "text/html; charset = utf-8"、 "utf-8"が私のために働いていました。ありがとう。 (アンドロイド5.0.1) – chrome

+1

"text/html; charset = utf-8"は私の主なソルバーです。ありがとう! –

関連する問題