当前位置:  开发笔记 > 前端 > 正文

如何在浏览器的文件下载框中显示非ascii文件名?

如何解决《如何在浏览器的文件下载框中显示非ascii文件名?》经验,为你挑选了1个好方法。

似乎没有一种可接受的方式来发送非ascii格式的头参数.

文件下载的标题通常是这样的

内容配置:附件; 文件名= "theasciifilename.doc"

除非你在filename参数中粉碎utf8编码的字符串,否则Firefox会处理它,而IE会抛出.

CodeProject上有一个文档,解释了编码文件名的方法.

该文件通过十六进制编码字节将BảnKiểmKê.doc编码为B%e1%ba%a3n%20Ki%e1%bb%83m%20K%c3%aa.doc.

问题#1:该字符串中的第一个字符:ả的值为ả - 以十六进制编码该数字,得到%a3%1e.这家伙怎么得到%e1%ba%a3?(我显然在这里遗漏了一些简单的东西)

问题2:虽然IE承认这种编码,但Firefox却没有!该怎么办?



1> Mike Dimmick..:

规范基本上不允许除US-ASCII之外的任何其他内容.HTTP标头是US-ASCII.HTTP的有效负载默认为ISO 8859-1,但它指的是内容主体,而不是标头.

可以说正确的事情是使用MIME的技术在头文件中编码非ASCII数据,如RFC 2047中所述,但我不知道浏览器是否真的支持它.

编辑:哎呀,不,RFC 2047第5节明确表示在Content-Disposition中不允许编码的表单.看起来你运气不好 - 没有标准.

编辑2:有一个标准 - RFC 2231定义了现在应该如何工作.它得到了一些浏览器的支持,但IE不支持.我找到了一些测试用例,演示了它是如何工作的以及可用的浏览器支持.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有