« GPG鍵の署名と送付 caff | トップページ | tuxonice のパッチを手元で作る »

2011年3月13日 (日)

メールの文字化けを修復した

メールの伝送プロトコル SMTP では、1行の文字数は 1000文字以内(ASCII換算)となっている。

つまり、1000文字を超えた場合には、内容が伝わることが保証されない。
対策として、


  • MIMEで変換する(変換された状態では76文字くらいで改行を入れるのが一般的で、伝送時には制限にひっかからない)

  • 1000文字めの手前で、無理矢理に改行記号を挟む。

という操作を行うメールプロバイダがある。(ここを見て知った)

今回たまたま見たのは、上の両方を行っているケース。(hotmail.com)
うまくできていれば、復号に際して問題にはならず、普通に読めたはず。

ただ、


  • ISO-2022-JP の切替えシーケンス 1B 24 42(漢字IN)、1B 28 42(漢字OUT)が
    なぜかバイト単位で入り混じっている(1B 1B 24 42 28 42 とか)

  • 複数バイト文字の、バイトの間に切替えシーケンスが飛び込んでいる

  • HTML メールのタグの途中に、sendmail が挟んだらしき改行シーケンス(23 0D 0A 20)
    があり、取り除かれていない


など、うまいことできていない部分がいくつかあり、文字化けしていた。

テキストの状態で見ていても埓が明かないので、バイナリエディタ bvi で開いて
バイト列と睨めっこ。なんとなく、混乱の仕方の法則性がつかめたので
試しに修正してみたら、うまいこと直った。

« GPG鍵の署名と送付 caff | トップページ | tuxonice のパッチを手元で作る »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: メールの文字化けを修復した:

« GPG鍵の署名と送付 caff | トップページ | tuxonice のパッチを手元で作る »

2026年7月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ