亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用ServletUtil.write方法下載接口文件中文亂碼問(wèn)題解決

 更新時(shí)間:2024年05月26日 09:19:14   作者:xiaodaidai丶  
本文主要介紹了使用ServletUtil.write方法下載接口文件中文亂碼問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

在開(kāi)發(fā)過(guò)程中遇到的一個(gè)小問(wèn)題,實(shí)現(xiàn)一個(gè)下載模板的接口,我選擇了使用hutool包的ServletUtil.write方法去進(jìn)行文件下載,但調(diào)試過(guò)程中下載出來(lái)的文件名是亂碼的,那么是為什么呢?

代碼片段如下:

在這里插入圖片描述

一、問(wèn)題分析

我們先來(lái)看看ServletUtil.write方法的源碼

在這里插入圖片描述

我們發(fā)現(xiàn)他會(huì)去調(diào)用getMimeType方法去分析MIME 類(lèi)型,如果獲取不到就會(huì)設(shè)置默認(rèn)的響應(yīng)MIME類(lèi)型,也就是application/octet-stream

在這里插入圖片描述

我們發(fā)現(xiàn)他是通過(guò)拿文件的后綴名從而返回相應(yīng)的MIME類(lèi)型到這里我們發(fā)現(xiàn)還是很正常的,最起碼響應(yīng)的MIME類(lèi)型是沒(méi)問(wèn)題的我們接著往下看,getInputStream沒(méi)什么好看的,就是獲取輸入流那么重點(diǎn)就是看write方法了

在這里插入圖片描述

一般出現(xiàn)文件名中文亂碼我們都會(huì)想到響應(yīng)設(shè)置字符編碼沒(méi)設(shè)置為UTF-8,那么很明顯的看到,他設(shè)置的響應(yīng)字符編碼是通過(guò)我們響應(yīng)設(shè)置的編碼來(lái)使用的,也就是response.getCharacterEncoding(),如果他獲取為null,那么他就設(shè)置默認(rèn)值為UTF-8,而傳輸過(guò)程他也給我們使用了URLUtil.encodeAll給我們進(jìn)行編碼了,很明顯這里不會(huì)有問(wèn)題,那這時(shí)經(jīng)過(guò)debuger就發(fā)現(xiàn)了,原來(lái)是因?yàn)?code>response.getCharacterEncoding()獲取到的編碼為iso-8859-1編碼,所以下載出來(lái)的文件名亂碼了,那么解決的辦法也很簡(jiǎn)單,只需要手動(dòng)設(shè)置一下編碼就好了

二、解決辦法

在這里插入圖片描述

總結(jié)

本文簡(jiǎn)單講述了使用ServletUtil.write方法下載接口文件中文亂碼問(wèn)題的原因以及如何解決,通過(guò)查看ServletUtil.write方法的源碼進(jìn)一步了解底層思路。更多相關(guān)ServletUtil.write下載亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的length和length()深入分析

    Java中的length和length()深入分析

    java中的length屬性是針對(duì)數(shù)組說(shuō)的,比如說(shuō)你聲明了一個(gè)數(shù)組,想知道這個(gè)數(shù)組的長(zhǎng)度則用到了length這個(gè)屬性。java中的length()方法是針對(duì)字符串String說(shuō)的,如果想看這個(gè)字符串的長(zhǎng)度則用到length()這個(gè)方法。這篇文章將介紹幾個(gè)關(guān)于Java數(shù)組的關(guān)鍵概念。
    2016-11-11
  • springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能

    springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能

    這篇文章主要為大家詳細(xì)介紹了springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 詳解SpringBoot自動(dòng)配置源碼

    詳解SpringBoot自動(dòng)配置源碼

    今天帶大家來(lái)分析SpringBoot自動(dòng)配置源碼,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • java中servlet實(shí)現(xiàn)登錄驗(yàn)證的方法

    java中servlet實(shí)現(xiàn)登錄驗(yàn)證的方法

    做web開(kāi)發(fā),登錄驗(yàn)證是免不了的,今天學(xué)習(xí)了servlet的登錄驗(yàn)證,當(dāng)然是很簡(jiǎn)單的,沒(méi)有使用session,request等作用域?qū)ο螅赃€是可以直接通過(guò)地址訪(fǎng)問(wèn)網(wǎng)頁(yè)的。
    2013-05-05
  • Java中的ReadWriteLock高效處理并發(fā)讀寫(xiě)操作實(shí)例探究

    Java中的ReadWriteLock高效處理并發(fā)讀寫(xiě)操作實(shí)例探究

    這篇文章主要為大家介紹了Java中的ReadWriteLock高效處理并發(fā)讀寫(xiě)操作實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Java 通過(guò) 二三法 巧解前端數(shù)據(jù)顯示

    Java 通過(guò) 二三法 巧解前端數(shù)據(jù)顯示

    實(shí)踐來(lái)源于理論,做開(kāi)發(fā)前肯定要先了解相關(guān)的規(guī)則和原理,看到標(biāo)題或許你會(huì)好奇什么是二三法。本篇文章帶你深入了解,需要的朋友可以參考下
    2021-10-10
  • Java 其中翻轉(zhuǎn)字符串的實(shí)現(xiàn)方法

    Java 其中翻轉(zhuǎn)字符串的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java 其中翻轉(zhuǎn)字符串的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-02-02
  • Java的HashMap源碼解析

    Java的HashMap源碼解析

    這篇文章主要介紹了Java的HashMap源碼解析,HashMap是一個(gè)用于存儲(chǔ)Key-Value鍵值對(duì)的集合,每一個(gè)鍵值對(duì)是一個(gè)Node,后臺(tái)是用一個(gè)Node數(shù)組來(lái)存放數(shù)據(jù),這個(gè)Node數(shù)組就是HashMap的主干,需要的朋友可以參考下
    2023-11-11
  • Spring MVC多種情況下進(jìn)行文件上傳的實(shí)例

    Spring MVC多種情況下進(jìn)行文件上傳的實(shí)例

    上傳是Web工程中很常見(jiàn)的功能,SpringMVC框架簡(jiǎn)化了文件上傳的代碼,本文給大家總結(jié)了Spring MVC多種情況下進(jìn)行文件上傳的實(shí)例,并通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問(wèn)題解決

    mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問(wèn)題解決

    本文主要介紹了mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09

最新評(píng)論