2012年6月17日日曜日

nkf の バグにハマった

シェルで sendmail と nkf でメールを送信しようとしてハマったのでメモ

title="ながーいながーい件名"
subject=`echo ${title} | nkf -jMm0`

とやると
=?ISO-2022-JP?B?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX?=
=?ISO-2022-JP?B?XXXXXXXXXXXXXXXXXXXXXXXXXXX

お尻の ?= が消える
UTF-8 を -M オプションで MIMEエンコードするとお尻が消えてしまう

どうやら 2.0.7 以前のバグらしい…
2.0.8 にて
* UTF-8 の入力を MIME エンコードすると正しく出力されないのを修正。

なので

subject=`echo ${title} | nkf -j | nkf -Mm0`

として 一旦 iso-2022-jp に変換してから
さらに MIMEエンコードすることで回避する

半日ハマった orz

0 件のコメント:

コメントを投稿