在我的 Android 应用程序中,我创建了一个 TSV 文件并通过电子邮件发送它。当我尝试使用 Excel 打开它时,它会将其检测为 ANSI,因此我的某些字符没有按应有的方式显示。我有另一个不是我创建的应用程序,但 Excel 将其检测为 UTF-8。我检查了这两个文件的十六进制代码,发现他在一些空格(不是制表符)中使用 C2 A0,而我使用 20。
这是我用来创建文件的代码:
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?
谢谢!