因文件名中包含特殊空格引起的一个上传文件的bug
项目中遇到了一个bug,上传一个excel文件,文件名中包含空格,项目中点击上传之后的文件名称出现无空格,数据库中保存的文件地址空格被?代替,无法下载。但是其他的包含空格的excel文件名却可以正常上传和下载。
有问题的excel文件名如下
数据库中保存的文件名
P74?JCIM?Retrofit?BBS?P64?to?P74?Right?(FXGL)设备工艺路线及工时表.xlsx
上传到linux服务器上之后的文件截图
自己尝试了在代码中将文件名中的空格 " " 替换成 "_",并不起作用。
尝试了多种方法后发现并没有什么用,直到百度到了一篇文章说的 一种特殊空格 (不间断空格),ASCII码中除了32之外还有160这个特殊的空格 原文链接介绍:https://blog.csdn.net/lewky_liu/article/details/79353151
虽然他描述的是其他场景,但也给了我启发,让我对这种特殊空格成功进行了替换。
String name = getFileNameNoEx(file.getOriginalFilename()).replaceAll("\\u00A0+", "_");
改后果然有效。
希望大家以后在对文件的名称进行处理时能考虑到这一点,或者自定义文件命名放于服务器上(用于后面下载),文件显示名称使用上传的源文件名。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)