【发布时间】:2015-07-11 10:51:18
【问题描述】:
我正在编写一个 Web 抓取应用程序,该应用程序使用 UTF8 编码将数据动态写入 CSV 文件。法语字符无法正确显示。如果我将生成的 CSV 输出保存为 CSV 文件,然后首先在记事本中打开 CSV 文件而不进行任何更改,然后当我在 Excel 中重新打开文件时,字符会正确显示。手动干预首先使用记事本保存不是此动态解决方案的选项。下面是示例代码。任何想法如何解决这一问题?谢谢。
public System.IO.Stream dsCSV(string url, string langID)
{
System.Text.StringBuilder sb1 = new System.Text.StringBuilder();
if (langID.Equals(Fr))
{
Thread.CurrentThread.CurrentCulture = cultureFr;
Thread.CurrentThread.CurrentUICulture = cultureFr;
processCSVData(sb1, url);
}
else
{
Thread.CurrentThread.CurrentCulture = cultureEn;
Thread.CurrentThread.CurrentUICulture = cultureEn;
processCSVData(sb1, url);
}
byte[] resultBytes = Encoding.UTF8.GetBytes(sb1.ToString());
return new MemoryStream(resultBytes);
}
public System.Text.StringBuilder processCSVData(System.Text.StringBuilder sb1, string url)
{
sb1.Append("Sociétés par portefeuille ministériel");
sb1.Append(",");
sb1.Append("Actif total");
sb1.Append(",");
sb1.Append("Passif à court terme");
sb1.Append(",");
sb1.Append("Passif à long terme");
sb1.Append(",");
sb1.Append("Avoir");
sb1.Append(",");
sb1.Append("Emploi");
sb1.Append("\n");
WebOperationContext.Current.OutgoingResponse.ContentType = "text/csv";
WebOperationContext.Current.OutgoingResponse.Headers.Add("content-disposition", "attachment; filename=" + Resources.CcSe.filename + ".csv");
return sb1;
}
【问题讨论】:
-
这是什么,Java?只是猜测......
-
那肯定不是 Java。可能是C#。 @Raj 修复你的标签。