rails:1912
From: OZAWA Sakuro <sakuro@e...>
Date: Fri, 15 Dec 2006 17:13:05 +0900
Subject: [rails:1912] send_file のファイル名
さくです。
IEでは、Content-Dispositionのファイル名が生Shift_JIS
でかかれていることを期待するらしいので(トホホ)、アッ
プロードされたファイルをダウンロードするコントローラに以下のよう
なコードを書いてみました。
def send_file_headers!(options)
super
disposition = options[:disposition].dup || 'attachment'
if options[:filename]
ua = request.user_agent
if /MSIE/=~ ua && GetText.locale.language == 'ja'
file_name = Iconv.conv('Shift_JIS', 'UTF-8', options
[:filename])
disposition += "; filename=#{file_name}"
elsif
以下略
さて、ここでSafariからカタカナの名前を付けたファイルをアッ
プロードし、IEでダウンロードしようとしたのですが、
IconvがIllegalSequence例外を出してしまいました。Mac
は結合文字を分解して扱う(たとえば、濁点付きカナ「ジ」を
「シ」+(合成用)「゛」として保存)のですが、
Iconvではこれが扱えない様子。
通すためには自力で合成文字を生成するという泥臭いことをしなければ
ならないようです。
--
ML: rails@r...
使い方: http://QuickML.com/
-> 1912 2006-12-15 09:13 [sakuro@e... ] send_file のファイル名 1918 2006-12-21 10:54 ┗[sakuro@e... ] 1919 2006-12-21 11:14 ┗[sakuro@e... ] 1920 2006-12-21 11:31 ┗[sakuro@e... ]