Android 讀取.txt文件出現亂碼的解決方案

其實就一句話:保證你文件的編碼方式和解碼方式一致就可以了。

如果你僅僅是讀取外部的文件,那麼接下來這麼用:

try {
      InputStream mInputStream = context.getAssets().open("text2.txt");
     BufferedReader mReader = new BufferedReader(new InputStreamReader(
                                                          mInputStream, "UTF-8"));

      mReadResult = mReader.readLine();
   } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }


不過對於ANSI格式的文件現在還沒有找到正確讀取的辦法,摸索中...



如果你先寫入文件,再讀出文件,為了保證編碼的一致性,接下來這樣用:

public static String encodin = "UTF8"
public static String encodout = "UTF8"
static void writeOutput(String str) {
try {
                FileOutputStream fos = new FileOutputStream("test.txt");
               Writer out = new OutputStreamWriter(fos, encodout);
              out.write(str);
                 out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
static String readInput() {
StringBuffer buffer = new StringBuffer();
try {
                       FileInputStream fis = new FileInputStream("test.txt");
                  InputStreamReader isr = new InputStreamReader(fis, encodin);
                       Reader in = new BufferedReader(isr);
                   int ch;
                 while ((ch = in.read()) > -1) {
                        buffer.append((char)ch);
                      }
in.close();
return buffer.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

你可能感兴趣的:(android)