nDiki : "B" encoding
Related term
2004年1月25日 (日)
■ [ WiKicker ] 通知メールの Subject: フィールドのエンコーディング修正

WiKicker には通知メールの Subject: フィールドがたまに壊れている問題があるのだが、ずっと放置しておいたままだった。 そろそろ次のバージョンをリリースしたいと思うので、今回修正しておく。
結果半日かかってしまった。
@ MIME::Words::encode_mimewords
まず現在エンコーディングに使っている MIME::Words::encode_mimewords (5.404)であるが、マニュアルを見ると charset によってはマズいエンコーディングを吐くらしい。 WiKicker で Subject: ヘッダが壊れるのも、この問題のせい。 文字境界を無視してぶったぎってエンコードされてしまう。 ということで、自前でエンコードする事にする。
@ 自前エンコーダ
まぁたいしたものではないが。 最初はエンコードする必要のある部分だけ encoded-word にする事も考えたのだが、面倒なのでやめ。 全部エンコードしてしまう事にする。 エンコーディングも最初は、"Q" encoding で実装しはじめたのだが(MIME::Words のデフォルトがそうなので、WiKicker でもそれを使っていた)ちょっと面倒なので、"B" encoding に変更。
@ タイトルの途中に空白が入ってしまう?
で、テスト。うーん。途中に余分な空白が入ってしまうな。 mew で受信したメールを見ると folding のところで余分な空白が入って表示される。 RFCとか見ても encoded-word に挟まれた CRLF SPACE は無視されるはずなんだけれどなぁ。
UTF-8 の代わりに ISO-2022-JPにしてみたりとか、エンコーディングを変えてみたり(Q or B)したのだが変わらず。 他から受けとっているメールは問題ないから、mew の問題でもなさそうだし。
ん? mew の inbox を確認してみると、他のソフトからのは \n, space でフォールディングされているな。 今書いているコードから送ったやつは \r\n, space でフォールディングされている。 RFC的には CRLF space では?
@ 問題は別のところに
WiKicker で \r\n, space でフォールディングしているところを \n, space でフォールディングするようにしたら直る。 けど、これでいいのかな?
って良く考えたら、他の部分はヘッダでも本文でも改行には \n を使っているんだった(Perl のヒアドキュメントを使っているので)。 ということは今まで、それを標準入力から受けとった sendmail が LF を CRLF にしてくれていたのか。 あまり深い事考えてなかったな。 今回はフォールディングのところだけで CRLF にしたため 一個余分に CR がついてしまい、それがタイトルの文字列中の空白として表示されてしまったと。
結局疑うべきは自分のコード。
- Perl で CR/LF/CRLF 全対応の1行毎読み込み処理 (2006-07-28)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- [ DiKicker ] くっつき BBSをくっつけてみた。 (2004-05-04)
■よく検索されるキーワード
perl(47) windows(44) 提案書(43) ドラマ(39) cvs(36) debian(31) linux(27) ほぼ日手帳(27) torrent(24) x31(24) 書き方(23) 使い方(23) サンプル(23) ganttproject(20) java(19) wiki(18) thinkpad(17) tc-1(17) 壁紙(15) アジェンダ(15) 作り方(15) ノート(14) 動画(14) usb(14) アジェンダとは(13) google(13) 手帳(12) ヨドバシカメラ(12) subversion(12) apache(12) ウォーターボーイズ2(12) インストール(11) ssh(11) フリー(11) centos(11) 2008(11) 影舞(11) c#(10) 画像(10) 秋葉原(10) svn(10) rcs(10) 日本語(10) リフィル(10) ほぼ日(10) tortoisesvn(10) 修理(10) ボールペン(9) cgi(9) 本名(9) ポーター(9) dvd(9) usbメモリ(9) クラリチン(8) web(8) 2009(8) a6(8) make(8) ヨドバシ(8) ubuntu(8) truecrypt(8) gtd(8) 設定(8) 写真(8) so905ics(7) ガントチャート(7) activeperl(7) 万年筆(7) 無料(7) svn+ssh(7) 冷蔵庫(7) ツール(7) バッグ(7) porter(7) gantt(7) project(6) firefox(6) scons(6) eclipse(6) flash(6)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 方法 設定 サンプル ダウンロード セール 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 最新 MP3 動画 Torrent 解説 意味 用語集 参考文献 お薦め お勧め おすすめ 便利 Blog ブログ mixi 待受画面 相場Process Time: 1.19861s / load averages: 0.83, 0.63, 0.63
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク