gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:44:15 26 4
gpt4 key购买 nike

似乎没有一种可接受的方式以非 ascii 格式发送 header 参数。

文件下载的 header 通常如下所示

内容处置:附件;文件名=“theasciifilename.doc”

除非你在文件名参数中破坏了 utf8 编码的字符串,Firefox 会很好地处理它,而 IE 会抛出错误。

有一个document on CodeProject that explains a method for encoding the filename.

本文档通过十六进制字节编码将 Bản Kiểm Kê.doc 编码为 B%e1%ba%a3n%20Ki%e1%bb%83m%20K%c3%aa.doc。

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

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

最佳答案

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

可以说,正确的做法是使用 MIME 技术对 header 中的非 ASCII 数据进行编码,如 RFC 2047 中所述。 ,但我不知道浏览器是否真的支持它。

编辑:哎呀,不,RFC 2047 第 5 节明确指出,内容处置中不允许使用编码形式。看起来你运气不好 - 没有标准。

编辑2:有一个标准 - RFC 2231定义了现在应该如何工作。部分浏览器支持,但 IE 不支持。我发现some test cases它演示了它的工作原理以及可用的浏览器支持。

关于encoding - 如何在浏览器的文件下载框中显示非ascii文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149058/

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