我有一個產生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