私のAndroidアプリケーションでは、TSVファイルを作成し、それを電子メールで送信します。Excelを使用して開こうとすると、ANSIとして検出されるため、一部の文字が正しく表示されません。同じことを行う、自分で作成していない別のアプリケーションがありますが、ExcelはそれをUTF-8として検出します。両方のファイルのHEXコードを確認したところ、20を使用しているのに対し、彼は一部のスペース(タブではない)でC2A0を使用していることがわかりました。
これは私がファイルを作成するために使用するコードです:
FileOutputStream writeFileHandler = context.openFileOutput(LOG_FILENAME_CSV, Context.MODE_WORLD_READABLE);
OutputStreamWriter oputStreamWriter = new OutputStreamWriter(writeFileHandler, "UTF-8");
for(int i=log_rows.length-1; i>=0; i--){
String[] entries = getDailyLogEntries(log_rows[i]); // array of your values
for(int j=0; j<entries.length; j++){
if(j==0) oputStreamWriter.write(entries[j]);
else{
if(entries[j] != null) oputStreamWriter.write("\t"+entries[j]);
}
}
oputStreamWriter.write("\n");
}
oputStreamWriter.flush();
oputStreamWriter.close();
writeFileHandler.close();
電子メールの送信を回避するためにDDMSを使用してファイルをプルしようとしましたが、結果は同じで、ANSIとして検出されました。ExcelがUTF-8として検出するようにするにはどうすればよいですか?
ありがとう!