メールの文字化けを修復した
メールの伝送プロトコル 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 のパッチを手元で作る »
「パソコン・インターネット」カテゴリの記事
- apt-cacher-ng と cli.github.com(2026.06.20)
- wine で LINEを使う(2026.04.10)
- apt-cacher-ng と ftp.jp.debian.org(2026.03.25)
- minicom の右枠線がズレる問題へのパッチと gdb の話(2026.01.04)
- Bluefish 関連ページ 復活(2025.12.29)


コメント