0

EditTex から取得したテキスト ファイルを内部ストレージに保存する必要があります。すべて正常に動作しますが、ユーロの通貨記号を EditText に書き込んで内部ストレージに保存すると、ファイルを回復して TextView に配置すると、ユーロの記号が次のように変換されます。ドル記号 $ を使用します。以下に、内部ストレージとの間でテキスト ファイルを保存および取得するために使用される 2 つの方法を示します。€の適切な記号を維持する方法について何か提案はありますか?

private void store (String filename, String data)
{
    try
    {
        FileOutputStream fOut= openFileOutput(filename,MODE_PRIVATE);
        fOut.write(data.getBytes());
        fOut.close();

    } catch (FileNotFoundException e1) {
        e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    }


private String read(String namefile, String datxt)
{
    try{
        FileInputStream fin=openFileInput(namefile);
        int c;
        String temp="";
        while ((c=fin.read())!=-1)
        {
            temp=temp+Character.toString(((char)c));
        }
        datxt=temp;
    } catch (FileNotFoundException e1) {
        e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    return datxt;
}
4

1 に答える 1

0

私は同じ問題を抱えていましたが、これが私がしたことです。この解決策で問題が解決した場合は、この回答を承認済みとしてマークしてください。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public String UTF8 = "utf8";
public int BUFFER_SIZE = 8192;

private void store (String filename, String data)
{
    try {
        BufferedWriter fOut = new BufferedWriter(new OutputStreamWriter(openFileOutput(filename, MODE_PRIVATE), UTF8), BUFFER_SIZE);
        fOut.write(data);
        fOut.close();
    } catch (FileNotFoundException e1) {
        e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
}

private String read(String namefile, String datxt)
{
    try {
        BufferedReader fin = new BufferedReader(new InputStreamReader(openFileInput(namefile), UTF8), BUFFER_SIZE);
        int c;
        String temp = "";
        while ((c = fin.read()) != -1) {
            temp = temp + Character.toString((char) c);
        }
        datxt = temp;
        fin.close();
    } catch (FileNotFoundException e1) {
        e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    return datxt;
}
于 2015-02-27T09:10:46.623 に答える