Springboot下載文件, 文件名中文是亂碼, 空格變加號

默認把文件名放上去, 中文會亂碼, 文件名種有空格, 就會被截斷

public void download(HttpServletResponse response){// 文件名先進行url編碼, 避免亂碼問題// 把+用%20進行替換fileName = URLEncoder.encode(fileName, "UTF-8").replace("+", "%20");response.setContentType("application/octet-stream");// 注意是 filename*=utf-8''response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + fileName + "." + fileRecord.getFileFormat());}

不能直接把空格替換成%20, 因為%會被url編碼轉成%25, 雖然可以再手動替換回來, 但太麻煩了

就先url編碼, 再替換+號即可

參考:?https://blog.csdn.net/minshiwang/article/details/105393649

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76886.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76886.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76886.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 超詳細安裝教程與常見問題解決方案

一、MySQL 安裝教程 1. Windows 系統安裝(以 MySQL 8.0 為例) 步驟 1:下載 MySQL Installer 訪問 MySQL 官網下載頁面。 選擇 Windows (x86, 64-bit), MSI Installer(推薦使用完整版 mysql-installer-web-community-8.0.xx.xx.…

【cuda學習日記】5.2.1 共享內存額外篇

共享內存(Shared Memory) 1.是一種低延遲、高帶寬的片上內存 2.由同一個Block內的所有線程共享 3.生命周期與Block相同 4.訪問速度比全局內存快約100倍 Block(線程塊) 1.GPU執行的基本單位,包含一組線程 2.多個Block組成Grid(網格) 3.Block內的線程可以通過共享內存…

[250411] Meta 發布 Llama 4 系列 AI 模型 | Rust 1.86 引入重大語言特性

目錄 Llama 4 家族登場:開啟原生多模態 AI 創新新紀元Rust 1.86.0 版本發布亮點主要新特性與改進其他重要信息 Llama 4 家族登場:開啟原生多模態 AI 創新新紀元 Meta AI 近日發布了其最新、最先進的 Llama 4 系列人工智能模型,標志著 AI 技術…

ArrayList 和 數組 的區別

定義與本質 數組:是 Java 語言內置的數據結構,是存儲相同類型元素的連續內存空間。它是一個基本的語言特性,在內存中是一塊連續的區域。ArrayList:是 Java 集合框架中的一個類,屬于動態數組。它是基于數組實現的&#…

??FireCrawl?爬蟲工具?, Craw4ai

?FireCrawl?是一款開源的AI爬蟲工具,專門用于Web數據提取,并將其轉換為Markdown格式或其他結構化數據。FireCrawl特別適合處理使用JavaScript動態生成的網站,能夠自動抓取網站及其所有可訪問的子頁面內容,并將其轉換為適合大語言…

通信原理-非線性調制

今天給大家帶來的是關于通信原理中非線性調制的內容,一起來看看吧!!! 1.角度調制 2.FM與PM的區別 3.單音調制FM 4.窄帶調頻 5.寬帶調頻 5.1FM信號的頻譜 5.2FM信號的帶寬 5.3FM信號的功率分配 6.FM信號的產生與解調 6.1FM信號的產生 6.2FM…

文心一言開發指南03——千帆大模型平臺產品優勢

版權聲明 本文原創作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 千帆大模型平臺作為百度智能云推出的企業級大模型一站式平臺,具有顯著的產品優勢。千帆大模型平臺以其基礎強大、流程完善、運行穩定和安全可靠的產品優勢成為企…

mysql DQL

一.基本查詢 1.查詢多個字段 2.查看所有字段 3.設置別名 4.去除重復記錄 二.條件查詢 1.大于小于等于 2.查詢 身份證為空的 沒有所以沒有記錄 3.在15到20這個區間范圍內 4.or/in 或者 4.like 匹配 (_匹配單個字符 %匹配多個字符) 查詢員工信…

關于 軟件開發模型 的分類、核心特點及詳細對比分析,涵蓋傳統模型、迭代模型、敏捷模型等主流類型

以下是關于 軟件開發模型 的分類、核心特點及詳細對比分析,涵蓋傳統模型、迭代模型、敏捷模型等主流類型: 一、軟件開發模型分類及核心特點 1. 瀑布模型(Waterfall Model) 核心特點: 線性階段劃分:需求分…

2025年第十六屆藍橋杯省賽C++ A組真題

2025年第十六屆藍橋杯省賽C A組真題 1.說明2.題目A:尋找質數(5分)3.題目B:黑白棋(5分)4. 題目C:抽獎(10分)5. 題目D:紅黑樹(10分)6. 題…

JVM初探——走進類加載機制|三大特性 | 打破雙親委派SPI機制詳解

目錄 JVM是什么? 類加載機制 Class裝載到JVM的過程 裝載(load)——查找和導入class文件 鏈接(link)——驗證、準備、解析 驗證(verify)——保證加載類的正確性 準備(Prepare&…

分布式微服務系統架構第106集:jt808,補充類加載器

加群聯系作者vx:xiaoda0423 倉庫地址:https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ 類加載器 類與類加載器 判斷類是否“相等” 任意一個類,都由加載它的類加載器和這個類本身一同確立其在 Java 虛擬機中的唯一性&#xf…

利用 pyecharts 實現地圖的數據可視化——第七次人口普查數據的2d、3d展示(關鍵詞:2d 、3d 、map、 geo、漣漪點)

參考文檔:鏈接: link_pyecharts 官方文檔 1、map() 傳入省份全稱,date_pair 是列表套列表 [ [ ],[ ] … ] 2、geo() 傳入省份簡稱,date_pair 是列表套元組 [ ( ),( ) … ] 1、準備數據 population_data:簡稱經緯度 population_da…

Enovia許可釋放

隨著企業規模的擴大和業務的不斷增長,Enovia許可證的管理變得至關重要。在許多情況下,企業可能面臨許可證資源浪費或不足的問題。為了解決這一問題,Enovia提供了許可釋放功能,幫助企業更加靈活地管理和使用許可證資源。本文將介紹…

每日一道leetcode(回來了!!!)

236. 二叉樹的最近公共祖先 - 力扣(LeetCode) 題目 給定一個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義為:“對于有根樹 T 的兩個節點 p、q,最近公共祖先表示為一個節點 x,滿足…

【Redis】布隆過濾器應對緩存穿透的go調用實現

布隆過濾器 https://pkg.go.dev/github.com/bits-and-blooms/bloom/v3 作用: 判斷一個元素是不是在集合中 工作原理: 一個位數組(bit array),初始全為0。多個哈希函數,運算輸入,從而映射到位數…

【ROS2】行為樹 BehaviorTree(四):組合使用子樹

1、大樹調用子樹 如下圖,左邊為大樹主干: 1)如果門沒有關,直接通過; 2)如果門關閉了,執行開門動作,然后通過 右邊為子樹,主要任務是開門 1)嘗試直接開門; 2)嘗試開鎖開門,最多嘗試5次; 3)最后嘗試砸門! XML如何描述大樹主干調傭子樹:使用關鍵字 SubTree 來…

【口腔粘膜鱗狀細胞癌】文獻閱讀

寫在前面 看看文章,看看有沒有思路 文獻 The regulatory role of cancer stem cell marker gene CXCR4 in the growth and metastasis of gastric cancer IF:6.8 中科院分區:1區 醫學WOS分區: Q1 目的:通過 scRNA-seq 結合大量 RNA-seq 揭示癌癥干細胞…

【ComfyUI】藍耘元生代 | ComfyUI深度解析:高性能AI繪畫工作流實踐

【作者主頁】Francek Chen 【專欄介紹】 ? ? ?人工智能與大模型應用 ? ? ? 人工智能(AI)通過算法模擬人類智能,利用機器學習、深度學習等技術驅動醫療、金融等領域的智能化。大模型是千億參數的深度神經網絡(如ChatGPT&…