2012-07-26 66 views
0

我不確定是否有人遇到此問題。以下是複製問題的步驟。Mojibake字符在出口excel後顯示

步驟: 1.轉到列表 - >聯繫人頁面。 2.點擊「導出」按鈕爲聯繫人列表生成.XLS報告。 3.關閉.XLS報告並導航到其他頁面,例如聯繫人列表。 4.在聯繫人列表中,單擊「關閉」按鈕以重新選擇「聯繫人」列表頁面。

預計: - 頁面顯示聯繫人列表頁面。

實際: - 顯示一個奇怪的頁面,其中包含mojibaki字符。請參閱在此URL http://i.imgur.com/dIsZc.png

這裏像使用主動報告生成excel的代碼:

私有靜態無效PushContentToHttp(ActiveReport報告,MemoryStream的MSDATA,字符串文件名,字符串URL) {

 report.Run(); 
     XlsExport xls = new XlsExport(); 
     xls.DisplayGridLines = true; 
     xls.AutoRowHeight = true; 
     xls.Export(report.Document, msData); 

     HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.ClearContent(); 
     HttpContext.Current.Response.ClearHeaders(); 
     HttpContext.Current.Response.Buffer = true; 

     HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"; 
     HttpContext.Current.Response.AddHeader("Content-Length", msData.Length.ToString()); 
     HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename= \"" + fileName + ".xls\""); 
     HttpContext.Current.Response.AddHeader("Refresh", "3; url=" + url); 
     HttpContext.Current.Response.Charset = "utf-8"; 
     HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding(1252); 
     //HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250"); 
     HttpContext.Current.Response.BinaryWrite(msData.ToArray()); 
     HttpContext.Current.Response.End(); 
//  HttpContext.Current.Response.Redirect(url,true); 

    } 

任何幫助將非常感謝!非常感謝! :)

回答

0

實際上,是什麼導致了這一點,是你的頁面設法重新回到瀏覽器緩存的Excel頁面。我可以建議你做一個完全的重定向,而不是隻做一個瀏覽器,以便前一頁將完全加載,而不是加載緩存的Excel頁面。無關ANSI編碼等等,等等,只是不正確的重定向問題。

相關問題