japanese file name

NAKAJI Hiroyuki nakaji @ tutrp.tut.ac.jp
2004年 2月 9日 (月) 13:43:22 JST


中治@豊橋です。

日本語ファイル名なファイルの取扱について。

http://www.bookshelf.jp/soft/meadow_54.html
を参考にして、

;;日本語の添付ファイル名を正しく表示                                           
;;これがないと化けます.                                                       
(defvar my-mime-filename-coding-system-for-decode
  '(iso-2022-jp japanese-shift-jis japanese-iso-8bit))
(defun my-mime-decode-filename (filename)
  (let ((rest (eword-decode-string filename)))
    (or (when (and my-mime-filename-coding-system-for-decode
		   (string= rest filename))
	  (let ((dcs (mapcar (function coding-system-base)
			     (detect-coding-string filename))))
	    (unless (memq 'emacs-mule dcs)
	      (let ((pcs my-mime-filename-coding-system-for-decode))
		(while pcs
		  (if (memq (coding-system-base (car pcs)) dcs)
		      (setq rest (decode-coding-string filename (car pcs))
			    pcs nil)
		    (setq pcs (cdr pcs))))))))
	rest)))
(eval-after-load "mime"
  '(defadvice mime-entity-filename (after eword-decode-for-broken-MUA activate)
     "Decode encoded file name for BROKEN MUA."
     (when (stringp ad-return-value)
       (setq ad-return-value (my-mime-decode-filename ad-return-value)))))

というのを ~/.emacs に追加したところ、*Article* バッファでは日本語ファ
イル名が表示されてうれしいのですが、少し欲が出てきました。

Samba で Windows にファイル共有をしているのですが、過去とのしがらみで
coding system = cap にしているため、上記の設定では T-gnus で v e した
ときに「日本語ファイル名」に保存されると、これは Windows から見たとき
にファイル名が化ける、ということになります。なんで、Windows でそのファ
イルを扱わなきゃいけないかというと、そういうファイルは、たいてい
Windows でしか扱えないことになっているからです。:-(

つまり、記事を読んでいるときには「日本語ファイル名」と見えて、保存する
ときは「:93:fa:96{:8c:ea:83t:83@:83C:83:8b:96:bc」というファイル名にし
たいというぜいたくな話です。

Samba-ja に附属の capecho というスクリプトを通すと変換はできるので、
T-gnus や FLIM/SEMI といっしょに使えばなんとかならんものかなぁというこ
となんですが、自分じゃよくわからんのです。

どうやればよいですか?
-- 
NAKAJI Hiroyuki (中治 弘行)




More information about the Emacs-mime-ja mailing list