2011-02-07 16 views
2

私は自分のアプリケーションの1つをスペイン語に翻訳していますが、WebViewに固執している生のHTMLファイルに文字エンコードの問題があります。私は私の生-ESフォルダ内のファイルのスペイン語の翻訳を持っている、と私は次の関数でそれを読んでいる:Android:生のリソースファイルをエンコードする文字

private CharSequence getHtmlText(Activity activity) { 
     BufferedReader in = null; 
     try { 
      in = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.help), "utf-8")); 
      String line; 
      StringBuilder buffer = new StringBuilder(); 
      while ((line = in.readLine()) != null) buffer.append(line).append('\n'); 
      return buffer; 
     } catch (IOException e) { 
      return ""; 
     } finally { 
      closeStream(in); 
     } 
    } 

でもどこでもファイルにスペイン語の文字があり、ダイヤモンドとがありますアプリを実行するとその中に疑問符が表示され、HTMLを表示するアクティビティが表示されます。私はもともとMicrosoft Wordでファイルを作成し

mWebView.loadData(text, "text/html", "utf-8"); 

ので、私は起こって文字エンコーディングの問題のいくつかの並べ替えがあると確信している、しかし、私は:私はWebViewのにテキストをロードするには、次を使用していますそれを修正する方法が本当にわからないし、Googleの検索は役に立たない。何か案は?

+0

ファイルを保存したときにエンコードにUTF-8を指定しましたか? (Word 2003では、ドキュメントをHTMLとして保存すると、文字エンコーディングを指定するオプションがありますが、見つけるのは難しいです。ファイルダイアログの右上には、「ツールメニュー」があります。 "Web Options"。そのダイアログのタブの1つは "文字エンコーディング"です。Wordの他のバージョンでは、その設定に到達する方法が異なる場合があります)。 –

答えて

12

loadDataは使用しないでください。代わりにloadDataWithBaseURLを使用してください。あなたは言うでしょう:

mWebView.loadDataWithBaseURL(null, text, "text/html", "utf-8", null); 
+0

これは私に多くの時間を節約します。これは答えとしてマークする必要があります。ありがとうrglovejoy ... – bobetko

+0

私は人々がこの他の質問でこれを探しているので、私はスペイン語のエンコーディングに真の解決策を見つけました。どうもありがとうございました。 – euther

+0

@rglovejoy、ありがとう。 +1してください。 – orchidrudra

0

私は脱出していたものを含めて、疑問符を持つダイヤモンドのシンボルが特定の文字の代わりに登場し、フランス語の翻訳と同様の問題がありました。 Eclipseでファイルプロパティを開き、エンコーディングを "ISO-8859-1"に変更することで回避できました。これがスペイン語でうまくいくかどうかは分かりません。

関連する問題