-1

私はアセットフォルダーに、珍しい文字を含むコンテンツを含むtxtファイルを持っています。たとえば、次のコンテンツです。

はいはい

Holà holá es un vetélélà Holà holá es un vetélélà Holà holá es un vetélélà Holà holá es un vetélélà Holà holá es un vetélélà

そして、アセットからtxtファイルを読み取り、文字列に保存するためにこのコードを使用しています:

public static String readTxt(Context context, String fileName){
    try {           
        AssetManager am = context.getAssets();
        InputStream is = am.open(fileName);         
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();          
        int i= is.read(); 

        while (i != -1){
            byteArrayOutputStream.write(i);
            i = is.read();
        }
        is.close();                     
        return byteArrayOutputStream.toString();
    } catch (Exception e) {e.printStackTrace();}
    return "";
}

テキストは正しい形式で読み取られています (スペースと改行は問題ありません) が、まれな文字 (á à é è...) は正しく読み取られていません。私はこれを読んでいます:

Hola\r\n\r\nHol� hole� es un vet�l�l� Hol� hole� es un vet�l�l� Hol� hole� es un vet�l�l� Hol� hole� es un vet�l�l� vet�l�l� Hol� hole� es un vet�l�l�</p>

私は何が悪いのですか?ASSETS からそのテキストを正しく読み取るにはどうすればよいですか?

4

1 に答える 1

0

byteArrayOutputStream.toString("UTF-8"); で文字列を取得するだけです。txtファイルをUTF-8エンコーディングで保存します:)

njzk2に感謝

于 2013-01-07T15:21:19.860 に答える