NKF でメールヘッダをデコードしたり出来るんですよ。
メールのタイトル(subject)をデコード
echo 'Subject: [kof2011pc:00187] =?ISO-2022-JP?B?GyRCNGsyaCVWITwlOUpnGyhC?==?ISO-2022-JP?B?GyRCPTgkTjlwQ04lYSE8GyhC?==?ISO-2022-JP?B?GyRCJWsbKEI=?=' | nkf -w -
でデコード出来ます
注意点 MIMEを使うときに
subject中の =?XXXXXXXXXXX ?= の区切り文字が無いとデコードできないよ
Subjectなどのiso-2022-jpのヘッダって普段ライブラリ任せなので、いざ調べようとすると,一行調べるために,メール全体をデコードするライブラリを持ち出してきて不便だったり。
エンコードはこんな感じ
takuya@letsnote:~$ echo これはテスト | nkf -jM =?ISO-2022-JP?B?GyRCJDMkbCRPJUYlOSVIGyhC?=
nkf の変換オプション
デコードで使った
- -w
- はUTF-8に変換して出力
エンコードで使った
です。
takuya@debian00:~$ nkf --help USAGE: nkf(nkf32,wnkf,nkf2) -[flags] [in file] .. [out file for -O flag] Flags: b,u Output is buffered (DEFAULT),Output is unbuffered j,s,e,w Outout code is JIS 7 bit (DEFAULT), Shift JIS, EUC-JP, UTF-8N After 'w' you can add more options. -w[ 8 [0], 16 [[BL] [0]] ] J,S,E,W Input assumption is JIS 7 bit , Shift JIS, EUC-JP, UTF-8 After 'W' you can add more options. -W[ 8, 16 [BL] ] t no conversion i[@B] Specify the Esc Seq for JIS X 0208-1978/83 (DEFAULT B) o[BJH] Specify the Esc Seq for ASCII/Roman (DEFAULT B) r {de/en}crypt ROT13/47 h 1 katakana->hiragana, 2 hiragana->katakana, 3 both v Show this usage. V: show version m[BQN0] MIME decode [B:base64,Q:quoted,N:non-strict,0:no decode] M[BQ] MIME encode [B:base64 Q:quoted] l ISO8859-1 (Latin-1) support f/F Folding: -f60 or -f or -f60-10 (fold margin 10) F preserve nl Z[0-3] Convert X0208 alphabet to ASCII 1: Kankaku to 1 space 2: to 2 spaces 3: Convert to HTML Entity X,x Assume X0201 kana in MS-Kanji, -x preserves X0201 B[0-2] Broken input 0: missing ESC,1: any X on ESC-[($]-X,2: ASCII on NL O Output to File (DEFAULT 'nkf.out') I Convert non ISO-2022-JP charactor to GETA d,c Convert line breaks -d: LF -c: CRLF -L[uwm] line mode u:LF w:CRLF m:CR (DEFAULT noconversion) Long name options --ic=<input codeset> --oc=<output codeset> Specify the input or output codeset --fj --unix --mac --windows --jis --euc --sjis --utf8 --utf16 --mime --base64 Convert for the system or code --hiragana --katakana --katakana-hiragana To Hiragana/Katakana Conversion --prefix= Insert escape before troublesome characters of Shift_JIS --cap-input, --url-input Convert hex after ':' or '%' --numchar-input Convert Unicode Character Reference --fb-{skip, html, xml, perl, java, subchar} Specify how nkf handles unassigned characters --in-place[=SUFFIX] --overwrite[=SUFFIX] Overwrite original listed files by filtered result --overwrite preserves timestamp of original files -g --guess Guess the input code --help --version Show this help/the version For more information, see also man nkf Network Kanji Filter Version 2.0.7 (2006-06-13) Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa),2000 S. Kono, COW