2017-12-28 11 views
0

私のSDカードにファイル「file.txt」と「hello android」という文字列が含まれています。私は、このコードは正常に動作しているが、私はテキストにジャンク文字の多くを取得していますSDカードからアンドロイドにファイルを読み込んだときのジャンク文字

File sdcard = Environment.getExternalStorageDirectory(); 

File file = new File(sdcard, "file.txt"); 

StringBuilder builder = new StringBuilder(); 

try { 
     BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); 
     String line; 

     while ((line = br.readLine()) != null) { 
      builder.append(line); 
      builder.append('\n'); 
     } 
     br.close(); 
    } 
    catch (IOException e) { 
     Log.d(TAG, "onClick: exception : " + e.getMessage()); 
    } 

    Log.d(TAG, "onClick: text : " + builder.toString()); 

下記のコードを使用してこのファイルを読み込むしようとしています。私はそれを探してみましたが、関連するものは何も見つかりませんでした。誰でもここで助けることができますか?

私の出力の写真も添付しています。

output

+2

元のファイルはどのような文字エンコードで書かれましたか? – DodgyCodeException

+0

UTF-8私は、私のコンピュータで崇高なテキストエディタを使用してそのファイルを作成し、それを私の電話に転送したと思います。 – Ezio

+0

トーストメッセージで同じものを表示していると、奇妙なテキストがうまく表示されています – Ezio

答えて

0

私は、ファイルがUTF-8ではないと思います。

"8ビット文字セットで表現できない文字はすべて疑問符として入力されます。" - > UTF-8

UTF-8を使用してアプリから何かをこのファイルに書き込んでから、それを元に戻って確認が表示されるかどうかを確認してください。

+0

ファイルのエンコーディングはどうやって判断できますか? – Ezio

+1

文字エンコーディングが問題でした。助けてくれてありがとう。 – Ezio

+0

これには適切なツールがあります:https://code.google.com/archive/p/juniversalchardet/ 次の場合はどうなりますか?String testString = "testtest"(スペースなし);と.append(testString)。トーストとコンソールの両方でokと表示されますか? – DanielSZ

関連する問題