常常發現,不管是用 IE 或 FireFox 下載檔案,出現的檔名是亂碼。
下面介紹一個屬性設定,可以試試。
Response.HeaderEncoding = System.Text.Encoding.GetEncoding("big5");
透過設定 HeaderEncoding之後,可以將這問題解決掉。
完整的程式如後:
string strpath = "檔案路徑";
Response.HeaderEncoding = System.Text.Encoding.GetEncoding("big5");
Response.AddHeader("content-disposition", "attachment;filename=" + "中文檔名");
Response.WriteFile(strpath);
Response.End();
Ref:http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/09/05/kb-open-and-download-file-in-chinese-filename.aspx
Ref:http://blog.miniasp.com/post/2008/04/ASPNET-Force-Download-File-and-deal-with-Chinese-Filename-correctly.aspx
[補充 20110920]
參閱保哥[ASP.NET 如何設定強制下載檔案並正確處理中文檔名的問題]這一篇文章,可以正確處理簡繁問題,也提供了不同瀏覽器的處理,非常值得參考。
[補充 20120704]
另一種選擇。
UrlPathEncode 用於檔案下載出現亂碼的問題
http://paladinprogram.blogspot.tw/2012/07/urlpathencode.html
2008年3月21日 星期五
訂閱:
張貼留言 (Atom)
Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Dieta, I hope you enjoy. The address is http://dieta-brasil.blogspot.com. A hug.
回覆刪除