file-name: 日本語ファイル名での添付

Shinichiro HIDA shinichiro @ stained-g.net
2003年 2月 7日 (金) 15:32:33 JST


飛田です。

XEmacs     21.4.12 (deb)
Wanderlust 2.11.1  (source)
apel       10.4    (source)
flim       1.14.5  (source)
semi       1.14.4  (source)

な環境です。(他の Emacs21, XEmacs21.5-b10 でもほぼ同様の結果になります。)

別件でテストしていて、日本語のファイル名をもつファイルを添付した場合、
MIME ヘッダのfilename= までエンコードされてしまいおかしな事になるよう
だという事に気がつきました。

;; 普段、自分では日本語ファイル名を使わないので、気がつきませんでした。

ファイルは、 Samba (Debian Woody) の共有上にあり、Samba 側の設定は、

 coding system = EUC
 client code page = 932

になっています。

ファイルは、

 ファイル名     : テスト-euc.txt
 本文文字コード : Shift_JIS-dos

で、Windows 2000 のエクスプローラから問題なく見る事ができ、メモ帳で正
常に開く事が出来ます。

また、Samba サーバー上で、共有されているディレクトリを rxvt、kterm 上
から ls や dir しても正常にファイル名を読む事ができます。

同じ ディレクトリを NFS マウントしている別のマシン (Debian sid) からで
も同様に正常に ls, dir, 編集出来ます。

また、GNU Emacs21.2.2 (deb)、及び、XEmacs 21.4.12 (deb) の dired から
も読み込めて、正常に開く事が出来ます。

このファイルを Wanderlust で添付すると、次のような MIME ヘッダとなり、
Bcc 等、自分で受信した時(送信時と同じ環境)でも filename が欠落するよう
です。

;; 自分の ~/Mail/queue に入った時点でも配送後でも同じです。

Content-Type: text/plain; charset=SHIFT_JIS
Content-Disposition: inline; =?ISO-2022-JP?B?ZmlsZW5hbWU9IhskQiVGJTkbKEI=?=
 =?ISO-2022-JP?B?GyRCJUgbKEItZXVjLnR4dCI=?=
Content-Transfer-Encoding: base64

上記部分は、本来、ドラフト作成の時点では、

[[text/plain; charset=SHIFT_JIS
Content-Disposition: inline; filename="テスト-euc.txt" ][base64]]

と指定しています(面倒なので、補完してます)が、どうもこれが filename= 
の部分まで含めてエンコードされてしまうようです。

RFC とか詳しくないので、良く分からないのですが、filename= の部分をエン
コードしないようにすると良いような気がしますが..

-- 
  Shinichiro HIDA  mailto:shinichiro @ stained-g.net
  GPG fingerprint = 5F2D 1656 FFF6 F691 A51C  5E61 E416 D398 470C 1CE9




More information about the Emacs-mime-ja mailing list