飘在云端

东西南北,海角天涯

· 前端 · · 546次浏览

nginx add_header Content-Disposition filename 输出中文字符 不乱码

环境:
Nginx v1.22.1
Win 7 x64 IE 11
Chrome v109 x64 正式版

参考 RFC5987:

https://datatracker.ietf.org/doc/html/rfc5987

示例:

add_header 'Content-Disposition' 'attachment; filename*=UTF-8\'\'%E5%AE%9E%E9%AA%8C%E6%80%A7' always;

根据 RFC 5987 规范 是无需转义单引号, 因为是写在 nginx 配置文件中,所以要注意转义单引号,如上面所示使用了 2 个 \ 转义 ',不转义 Nginx -t 检测配置必定报错,要输出的中文字符、特殊字符、其他语言的文件名用 URL(encodeURI) 编码,或者 encodeURIComponent 编码

请输入图片描述

下载时均能正确显示中文 实验性

请输入图片描述
请输入图片描述
请输入图片描述

评论 (0条)