日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Firefox下載文件時中文名亂碼問題

 看云舒云卷c 2019-05-08

為了形象化,先看幾張不同瀏覽器下下載文件時的效果圖:

1:Firefox 36.0.1

2:IE8

3:Chrome 40.0.2214.93 m

4:360 7.1.1.322

很明顯在Firefox下出現(xiàn)了亂碼,出現(xiàn)亂碼一般是字符集的問題,這是怎么回事呢?為什么其他的瀏覽器都沒有問題呢?看了一下Firefox的字符集是Unicode,改成簡體中文看看,發(fā)現(xiàn)文件名是不亂了,不過網(wǎng)頁的其他部分全亂了,連百度都亂了!如下圖所示:

恩,一時我也不知道是什么原因,看看Firefox下的下載文件的響應(yīng)信息是什么樣的,如下圖所示:

 以前為了防止出現(xiàn)亂碼問題,后臺的文件名是經(jīng)過這個轉(zhuǎn)換的(java.net.URLEncoder.encode(fileName, "UTF-8");),證明傳遞的過程中沒有問題,不過為什么其他瀏覽器在彈出下載對話框的時候沒有問題,而Firefox卻出現(xiàn)了亂碼呢?可能是在彈出對話框的時候處理的方式不一樣吧!我們百度看看!

針對這個問題,遇到的人還是不少的,下面是我覺得非常有借鑒作用的資源:

1:這篇博文解釋的相當(dāng)好,值得一看

http:///post/redisposition.html

2:這一篇也有一定的借鑒意義

http://my.oschina.net/iceman/blog/67541

3:下面是具體解決方案

http://f0rb./blog/1308579

http://www.cnblogs.com/stangray/archive/2010/06/28/1766884.html

http://blog.csdn.net/shixing_11/article/details/5858902

恩,看到這里我相信,不管明白不明白為什么,只要動手實(shí)驗(yàn)實(shí)驗(yàn),就能針對自己的情況,找到這個問題的解決方案了,關(guān)鍵就是如何按照要求寫

"Content-Disposition","attachment;filename*=utf-8'zh_cn'文件名.xx"

我的解決方式如下(借鑒上面的解決方式):

復(fù)制代碼
                       //僅提供了部分代碼,因?yàn)槲覀円呀?jīng)明確問題的所在,知道修改那一部分了,(代碼中downloadFileName 即代表 *=utf-8'zh_cn'文件名.xx部分)
String agent = (String)getRequest().getHeader("USER-AGENT"); if(agent != null && agent.toLowerCase().indexOf("firefox") > 0) { downloadFileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes("UTF-8")))) + "?="; } else { downloadFileName = java.net.URLEncoder.encode(fileName, "UTF-8"); }
復(fù)制代碼

 該段代碼經(jīng)我測試,通過了Firefox 36.0.1/IE8/Chrome 40.0.2214.93 m/360 7.1.1.322等瀏覽器的考驗(yàn)!

Firefox修改后的效果如下所示:

4:如果你感興趣,英文還不錯,可以看看下面的內(nèi)容

http://blogs./b/ieinternals/archive/2010/06/07/content-disposition-attachment-and-international-unicode-characters.aspx

http:///questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http

http:///tech/tc2231/

 

非常感謝網(wǎng)絡(luò)上無私的貢獻(xiàn)者!

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多