- 主题:水木附件的文件名
HTTP 应答中的 Content-Disposition 首部,是遵循 MIME 规范中的相关定义的,
一般我们会通过类似: Content-Disposition: inline;filename=foo.bar 的形式
给客户端提示文件名,但如果文件名包含 ASCII 以外的字符时应该怎么处理呢?
在 RFC 2183 (Communicating Presentation Information in Internet Messages)
中,关于 Content-Disposition 的 filename 域有如下叙述:
Current [RFC 2045] grammar restricts parameter values (and hence
Content-Disposition filenames) to US-ASCII. We recognize the great
desirability of allowing arbitrary character sets in filenames, but
it is beyond the scope of this document to define the necessary
mechanisms. We expect that the basic [RFC 1521] `value'
specification will someday be amended to allow use of non-US-ASCII
characters, at which time the same mechanism should be used in the
Content-Disposition filename parameter.
Beyond the limitation to US-ASCII, the sending MUA may wish to bear
in mind the limitations of common filesystems. Many have severe
length and character set restrictions. Short alphanumeric filenames
are least likely to require modification by the receiving system.
所以事实上 Content-Disposition 的 filename 域应当只包含 ASCII 字符,
目前水木附件中如果出现中文文件名,用的其实是 GBK 编码的字符,这对许多
默认以 UTF-8 处理的系统/浏览器造成了困扰,是否可能找到办法改善这一困难
呢?
--
FROM 211.66.100.*
这个问题很久以前研究过,结论是搞不定 IE 所以只能用现在这种方法。
现在情况肯定有变化了,你的建议是?
【 在 jjgod (jjgod) 的大作中提到: 】
: HTTP 应答中的 Content-Disposition 首部,是遵循 MIME 规范中的相关定义的,
: 一般我们会通过类似: Content-Disposition: inline;filename=foo.bar 的形式
: 给客户端提示文件名,但如果文件名包含 ASCII 以外的字符时应该怎么处理呢?
: ...................
--
FROM 128.12.150.*
根据 User-Agent 判断用 GBK 还是 UTF-8?
【 在 atppp (Big Mouse) 的大作中提到: 】
: 这个问题很久以前研究过,结论是搞不定 IE 所以只能用现在这种方法。
: 现在情况肯定有变化了,你的建议是?
--
FROM 220.194.54.*
前端有 squid 之类的。。。
我记得当时搞这个的时候就是同时搞不定 ie firefox,然后右键点下载和
左键直接点开我记得还不一样,后来 Firefox 从 1.0 到 1.5 的时候又改了一下
什么东西,导致那个快成型的方案又要修改,最后就不了了之了。。
有空应该再拾起来看看。
【 在 jjgod (jjgod) 的大作中提到: 】
: 根据 User-Agent 判断用 GBK 还是 UTF-8?
--
FROM 128.12.150.*
IE7强推会不会有帮助?
【 在 atppp (Big Mouse) 的大作中提到: 】
: 前端有 squid 之类的。。。
: 我记得当时搞这个的时候就是同时搞不定 ie firefox,然后右键点下载和
: 左键直接点开我记得还不一样,后来 Firefox 从 1.0 到 1.5 的时候又改了一下
: ...................
--
FROM 221.222.201.*
我说了阿,我的知识已经过时了,现在也许有很简单的方案了呢
只不过我不知道。
【 在 yuhuan (恰恰相反) 的大作中提到: 】
: IE7强推会不会有帮助?
--
FROM 128.12.150.*
囧啊囧,我用的是 Safari,这玩意更麻烦,昨天好不容易想到
一个办法把错误解码的 NSString 给转回去,不过还是得服务器
端有提示 (“这是 GBK 数据”),不然客户端完全不知道应该按
照 GBK 来解码啊..
【 在 atppp (Big Mouse) 的大作中提到: 】
: 前端有 squid 之类的。。。
: 我记得当时搞这个的时候就是同时搞不定 ie firefox,然后右键点下载和
: 左键直接点开我记得还不一样,后来 Firefox 从 1.0 到 1.5 的时候又改了一下
: ...................
--
FROM 220.194.54.*
具体怎么提示的?如果转成 UTF-8 呢?
【 在 jjgod (jjgod) 的大作中提到: 】
: 囧啊囧,我用的是 Safari,这玩意更麻烦,昨天好不容易想到
: 一个办法把错误解码的 NSString 给转回去,不过还是得服务器
: 端有提示 (“这是 GBK 数据”),不然客户端完全不知道应该按
: ...................
--
FROM 128.12.150.*