2011-08-15 4 views
2

私はアンドロイドを使用してテキストビューに表示するためにテキストファイルをインポートしようとしています。Androidテキストファイルのインポート

ファイルは、「法的」と呼ばれ、RESに位置しています/生

私は、ファイルを読み込むには、次のコードを使用して...

 BufferedReader bufferreader = new BufferedReader(new 
     InputStreamReader(getResources().openRawResource(R.raw.legal), Charset.forName("UTF8"))); 
     String bufferLine; 
     String tempText = ""; 
     try 
     { 
      while ((bufferLine = bufferreader.readLine()) != null) 
      { 
       tempText = tempText + bufferLine + "\n"; 
      } 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 

私はtempTextを表示しようTextView、指向性の "スマート"引用符は未知の文字として表示されます。テキストファイルlegalは、UTF8(notepad ++を使用)でエンコードされています。私は問題が何であるか把握していないようです。

+0

なく、あなたの問題を解決するに希望(あなたは、ファイルがUTF-8として保存されたことを確信している?)だけで観察:そのコードはその中間 'STRING'オブジェクトの多くを生成します。ガベージコレクションが必要です。特にファイルが大きい場合、 'StringBuilder'を使う方が効率的です。 –

答えて

1

"UTF8"は有効な文字セット名ですか? the documentation for Charsetは、私は通常ちょうど

InputStreamReader(inputStream, "UTF-8") 

を行うと、すべての問題を持っていなかったUTF-8

を示唆しているようです。私はutfでエンコードされたHTMLスタイルに問題がありました。 &#UNICODENUMBER;

にこれは、それらの問題

txtView.setText(Html.fromHtml(str).toString()); 

はEDIT

固定上記のようにあなたを助けていなかったので、私は次のことをしようとするだろう:

txtView.setText(Html.fromHtml("“" + " Hello World " + "”").toString()); 

だけかどうかを確認するために使用されるフォントには文字のサポートがあります(私はあなたが引用符をつけた後であると推測しています)。レンダリングする場合は、ファイルを読み込む方法(それでも十分だと思われますが)、または実際のファイルに問題がなければなりません。

役立ちます:)

+0

お返事ありがとうございます。文字列を "UTF-8"に変更しようとしましたが、何も変わりません。私はあなたが記述したutf htmlメソッドも試しましたが、それはどちらも役に立たなかった。 –

+0

病気を試してみてください。 – JustDanyul

+0

あなたのお返事ありがとうございます。物事が正しく行われると、デバイス自体に特殊文字が表示されることがないため、元々エンコーディングしていたファイルに何か問題があったと思います。ありがとう! –

関連する問題