2008年3月21日 星期五

檔案下載或開啟時出現亂碼檔名

常常發現,不管是用 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

1 則留言:

  1. 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.

    回覆刪除