欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

代碼片段如下:

在這里插入圖片描述

一、問題分析

我們先來看看ServletUtil.write方法的源碼

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

二、解決辦法

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

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

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

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

    springSecurity實現(xiàn)簡單的登錄功能

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

    詳解SpringBoot自動配置源碼

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

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

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

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

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

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

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

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

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

    Java的HashMap源碼解析

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

    Spring MVC多種情況下進行文件上傳的實例

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

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

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

最新評論