Yanghn Notes

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            10 Posts :: 10 Stories :: 2 Comments :: 0 Trackbacks

           

              在通過IE直接下載文件的時候,我們可能會遇到一個比較常見的問題,那就是:我們下載的文件的文件名如果過長的話,就會出現,彈出的提示框的文件標題名變成亂碼,即“%f%e%1”這樣的亂碼,而且點擊保存到本地,文件的名稱同樣是亂碼,一般我們使用的代碼如下:

           

              Response.ContentType = "application/octet-stream";
              Response.AddHeader("Content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(strAccFileName, Encoding.UTF8) + "");
              Response.CacheControl = "Private";
              Response.BinaryWrite(objFileBuf);
              Response.Flush();
          

              經過測試,strAccFileName支持的字符長度在32個以下,如果超過該長度,即會出現我們開始描述的亂碼問題,所以,我們對超過32個字符以外的字符進行了認為截取,并使用“……”作為省略的象征,這樣能夠稍微緩解一下問題,畢竟不會出現客戶認為的異常的亂碼了,但是如果客戶堅持要保證完整用戶名下載,并且其用戶名實在是非常的長的情況的話,那我們暫時只能考慮使用其他的下載方式,或者自己重新設計編寫一個下載界面,是可以解決問題的。

           

              最后說一點,我使用的瀏覽器是IE8 Beta版,但啟用的是IE7的應用,出現的情況卻是名稱的前面字符出現了亂碼,但是,有一部分內容是正常的,但是,在IE6中,卻是全部都是亂碼,不知道是否做了優化?但我們最終還是選擇了多截取一部分內容,以保證出現亂碼的問題。

          posted on 2010-03-09 10:18 小海 閱讀(360) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 筠连县| 万荣县| 蓬溪县| 定结县| 蓬莱市| 鄂托克前旗| 乌什县| 宿州市| 华容县| 海门市| 连平县| 潼关县| 靖边县| 阿勒泰市| 克什克腾旗| 武宁县| 宜都市| 米脂县| 凤庆县| 津市市| 玉山县| 鸡东县| 麦盖提县| 屯门区| 平舆县| 隆化县| 永州市| 邢台市| 怀化市| 浑源县| 柘城县| 天水市| 楚雄市| 汪清县| 来凤县| 富民县| 饶河县| 吉安市| 溆浦县| 尉氏县| 颍上县|