為了形象化,先看幾張不同瀏覽器下下載文件時(shí)的效果圖: 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)亂碼一般是字符集的問(wèn)題,這是怎么回事呢?為什么其他的瀏覽器都沒(méi)有問(wèn)題呢?看了一下Firefox的字符集是Unicode,改成簡(jiǎn)體中文看看,發(fā)現(xiàn)文件名是不亂了,不過(guò)網(wǎng)頁(yè)的其他部分全亂了,連百度都亂了!如下圖所示: 恩,一時(shí)我也不知道是什么原因,看看Firefox下的下載文件的響應(yīng)信息是什么樣的,如下圖所示: 以前為了防止出現(xiàn)亂碼問(wèn)題,后臺(tái)的文件名是經(jīng)過(guò)這個(gè)轉(zhuǎn)換的(java.net.URLEncoder.encode(fileName, "UTF-8");),證明傳遞的過(guò)程中沒(méi)有問(wèn)題,不過(guò)為什么其他瀏覽器在彈出下載對(duì)話框的時(shí)候沒(méi)有問(wèn)題,而Firefox卻出現(xiàn)了亂碼呢?可能是在彈出對(duì)話框的時(shí)候處理的方式不一樣吧!我們百度看看! 針對(duì)這個(gè)問(wèn)題,遇到的人還是不少的,下面是我覺(jué)得非常有借鑒作用的資源: 1:這篇博文解釋的相當(dāng)好,值得一看 http:///post/redisposition.html 2:這一篇也有一定的借鑒意義 http://my.oschina.net/iceman/blog/67541 3:下面是具體解決方案 http://www.cnblogs.com/stangray/archive/2010/06/28/1766884.html http://blog.csdn.net/shixing_11/article/details/5858902 恩,看到這里我相信,不管明白不明白為什么,只要?jiǎng)邮謱?shí)驗(yàn)實(shí)驗(yàn),就能針對(duì)自己的情況,找到這個(gè)問(wèn)題的解決方案了,關(guān)鍵就是如何按照要求寫(xiě)
我的解決方式如下(借鑒上面的解決方式): //僅提供了部分代碼,因?yàn)槲覀円呀?jīng)明確問(wèn)題的所在,知道修改那一部分了,(代碼中downloadFileName 即代表 該段代碼經(jīng)我測(cè)試,通過(guò)了Firefox 36.0.1/IE8/Chrome 40.0.2214.93 m/360 7.1.1.322等瀏覽器的考驗(yàn)! Firefox修改后的效果如下所示: 4:如果你感興趣,英文還不錯(cuò),可以看看下面的內(nèi)容 http:///questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http
非常感謝網(wǎng)絡(luò)上無(wú)私的貢獻(xiàn)者!
|
|
來(lái)自: 看云舒云卷c > 《網(wǎng)絡(luò)技能》