成瀬です。
rubikitch@xxxxx wrote:
> US-ASCIIとISO-2022-JPは結合さえも許されていないのでしょうか?
> Ruby 1.9で日本語メールをnet/smtpで送ろうとしてハマりました。
うーん、許されないかなぁ。。。
US-ASCII の "\e$B$\"$$$&$($*\e(B" と、
ISO-2022-JP の "\e$B$\"$$$&$($*\e(B" とは別物な気もしないでもないし、
US-ASCII 側の文字列に ESC や SI、SO が混じっていると意図しない動きになりますし。
まぁ、迷うところではあります。
UTF-7 とかだと確実にアウトなんですけどねぇ。
> また、NKF.nkfでMIMEエンコードした結果のエンコーディングはISO-2022-JPになるのは
> 望ましい振舞いでしょうか?
これはバグな気がしたのでr18201で直しました。
> require 'nkf'
> NKF.nkf("-jE --mime", "あいうえお")
> # => "=?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKhsoQg==?="
> NKF.nkf("-jE --mime", "あいうえお").encoding
> # => #<Encoding:ISO-2022-JP (dummy)>
> "ab" + NKF.nkf("-jE --mime", "あいうえお").force_encoding("US-ASCII")
> # => "ab=?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKhsoQg==?="
ちなみに、
"ab=?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKhsoQg==?=" は正しくありません。
"ab =?ISO-2022-JP?B?GyRCJCIkJCQmJCgkKhsoQg==?=" が正解ですね。
encoded-word 前後に空白が必要です。
--
NARUSE, Yui <naruse@xxxxx>