javaでファイルをダウンロードしようとしたら日本語ファイル名が文字化ける

headerのContent-Dispositionにいろいろセットする

response.addHeader("Content-Disposition", "attachment; filename*=UTF-8''" + URLEncoder.encode(file.getName(), StandardCharsets.UTF_8.name()));

Spring Bootで日本語ファイル名のファイルダウンロード - システム開発メモ

 

半角スペースが+になってしまうのでreplaceしておく

.replace("+", "%20")

テックノート – 【Java】URLエンコード出来ない文字と対応方法