やりたいこと
- 古いメールソフトを使っているので、一部のメールソフト(おそらくApple Mail)で作成した添付ファイルの名前が正しくデコードできない問題がある。
- Outlookを対象にした同種ツールはあるので、Email Converter .NETなどを使うのが手っ取り早いけど、拡張子を.emlに変更しないとならないなど、日常利用しようとすると細かいところでストレスがある。かといって、CyberchefとかBulk_Extractorを持ち出すのは明らかにやり過ぎ。コマンドラインでワンライナーとか、バッチファイルにドラッグ&ドロップするくらいでなんとかならないものだろうかと。
- Windowsで動作するコマンドラインツールの定番はmpack/munpackだけど、デコードは問題なく出来るものの、ファイル名の復元がうまく行かない。読めれば良いだけなら十分だけど、業務利用だとコミュニケーション上のトラブルに繋がるのでこれもアウト。
- そうこう調べている内に、UUDeviewというWindows 95時代のリリースされたと思われるプログラムに行き着きました。GUI版もあるようだけど、日本語ファイル名で利用すると正常利用しないようなので、コマンドライン版に落ち着きました。いや、こういうツールを継続公開してくれているのは本当にありがたいです。
Email Converter .NET 15.1
mpack 1.7
UUDeview
superuser.com
www.fpx.de
www.miken.com
- こんなバッチファイルを作成して、ショートカットを【送る】に登録しておけば十分役割を果たしてくれます。
E:\Bin>cat decode-attachment.bat E:\Bin\uudeview.exe -i -p z:\ %1
Macで作成したファイル名の濁点・半濁点が問題らしい
- 例えば、「スケジュール」と「スケシ゛ュール」の違い。後者をメールソフトの機能を使って添付ファルとして保存しようとすると文字化けする。ソースからUUDeviewでデコードしても、ファイル名を見ると後者になっているので本質的には解決していない。
- 原因は、MacOSで作成したファイル名はUTF8-MAC型式「スケシ゛ュール」になっていて、それをUTF-8N型式「繧ケ繧ア繧キ繧帙Η繝シ繝ォ」にすると文字化けしているようにみえるだけなのか。
z:\>echo "スケシ゛ュール" | nkf32 -w "繧ケ繧ア繧キ繧帙Η繝シ繝ォ" z:\>echo "繧ケ繧ア繧キ繧帙Η繝シ繝ォ" | nkf32 "スケシ゛ュール"