![](/img/trans.png)
[英]How can I convert a downloaded csv file (ANSI) to UTF-8 in Android
[英]Creating TSV file in Android: when I try to open in Excel it detects it as ANSI, I need UTF-8
在我的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?
谢谢!
您是否尝试过在TSV文件的开头添加UTF-8 BOM? 这可以说服Excel它是UTF-8文件。 字节序列为0xEF,0xBB,0xBF。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.