我有一个产生CSV报告的应用程序。这可以在本地正常工作,并且CSV通常在Excel中打开...此文件是ANSI编码的。当部署到一个(不是全部)我的服务器时,相同的代码会生成相同的文件,但使用Unicode ...,在Excel中不能很好地打开(每行的数据都在第一列)。这是相同的代码,所以我假设这是一个IIS设置,但我找不到任何东西。有人有任何想法吗?一个服务器输出Unicode和另一个ANSI
更新:应用程序使用一个StreamWriter
创建一个文本文件,然后如下文本文件发送到响应流:
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
您的应用程序创建和写入CSV文件的准确程度如何? – 2013-04-24 17:26:56
该应用程序使用StreamWriter创建文本文件,然后将文本文件发送到响应流,如下所示: Response.Clear(); Response.AddHeader(“Content-Disposition”,“attachment; filename =”+ file.Name); Response.AddHeader(“Content-Length”,file.Length.ToString()); Response.ContentType =“application/octet-stream”; Response.WriteFile(file.FullName); Response.End(); – user470249 2013-04-25 11:22:31
'StreamWriter'有一个构造函数,可以让你指定用于编写文本的'Encoding'。它默认为UTF-8。 'WriteFile()'按原样传输文件。因此,如果文件在不同服务器上的编码方式不同,那么写入文件时不得使用相同的'Encoding'。你能显示实际创建文件的代码吗? – 2013-04-25 15:24:08