gpt4 book ai didi

python - 为什么python双引号在文件名中转换为连字符?

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:30 26 4
gpt4 key购买 nike

我正在使用 Django 中的 ReportLab 生成一些 pdf。我遵循并试验了给 this question 的答案,并意识到其中的双引号没有意义:

response['Content-Disposition'] = 'inline; filename=constant_"%s_%s".pdf'\
% ('foo','bar')

给出文件名 constant_-foo_bar-.pdf

response['Content-Disposition'] = 'inline; filename=constant_%s_%s.pdf' \
% ('foo','bar')

给出文件名 constant_foo_bar.pdf

这是为什么?是否仅与文件系统的 slug-esque sanitizer 有关?

最佳答案

this question的研究看来它实际上是浏览器在进行编码/转义。我用了cURL确认 Django 本身不会转义这些 header 。首先,我设置了一个最小的测试 View :

# views.py 
def index(request):
response = render(request, 'template.html')
response['Content-Disposition'] = 'inline; filename=constant"a_b".html'
return response

然后运行:

carl@chaffinch:~$ HEAD http://localhost:8003
200 OK
Date: Thu, 16 Aug 2012 19:28:54 GMT
Server: WSGIServer/0.1 Python/2.7.3
Vary: Cookie
Content-Type: text/html; charset=utf-8
Client-Date: Thu, 16 Aug 2012 19:28:54 GMT
Client-Peer: 127.0.0.1:8003
Client-Response-Num: 1
Content-Disposition: inline; filename=constant"a_b".html

查看 header :filename=constant"a_b".html。引号仍然存在!

关于python - 为什么python双引号在文件名中转换为连字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11835793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com