成瀬です。 しん wrote: > mime mail での base64 encodeing は、body 部分と、header では > お作法が異ります。 > なので、命名しなおすなら、「body用ではないよ、header用だよ」 > と明示した方がよいかな、と思ったのです。 > > base でなくBにしたのも同じような意味あいで、 > body では > Content-Transfer-Encoding: base64 > と、base64 ですが、headerの作法では > =?ISO-2022-JP?B? > と、B です。 RFC2047には、 “The "B" encoding is identical to the "BASE64" encoding” とあるので、B64 でなく B の方がいいと思います。 さておき、str = "テスト test" をいわゆる「BASE64」したとき、 期待される変換結果はおそらく二種類あります。 一つはただ変換しただけの "GyRCJUYlOSVIGyhC\n"。 もう一つは encoded-word にした "=ISO-2022-JP?B?GyRCJUYlOSVIGyhC?="。 変換結果がどちらなのか明確なメソッド名であるべきかと。 encode_base64, decode_base64 は前者には適切だと思いますが、 後者で用いるのは直感的でないように感じます。 encoding を指定できるならば、charset も指定できてよさそうですし。 > これを使う人は、header用だってことは自明だよ、なのかなぁ。 header 用でなければ Array#pack('m') を使うはずですが、 混同は避けられた方がいいかと。 なお、他の言語では、 Perl/Jcodeの場合 http://openlab.jp/Jcode/Nihongo.html#item_mime_encode mime_encode で ISO-2022-JP、MIME_Header で UTF-8。 Pythonの場合は指定の仕方が異なる http://www.python.jp/doc/release/lib/module-email.Header.html という感じでしょうか。 Jcode.pmにあわせるならば、 mime_encode / mime_decode は無難かもしれません。 "header"という文字列はありませんが、 body用だと思う可能性は少ないでしょうし、 将来の名前空間を食ってしまうこともなさそうです。 -- NARUSE, Yui <naruse / airemix.com> DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA