2008年7月25日

[ruby-list:45258] Re: character encodings differ: US-ASCII and ISO-2022-JP

成瀬です。

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>


投稿者 xml-rpc : 2008年7月25日 04:11
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/75655
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。