サイトに設置したメールフォームから送信された文章の一部だけが文字化けするという問題が発生しました。
ただの文字化けならば、「どうせ文字コードでしょ?原因は」と予測できるんですが、(文章)〜(文字化け)〜(文章)のように、文字化け部分の前後は文字化けしていなかったため、原因不明でした。
こんなニッチなケースもあるんだよ、という備忘録として原因を。
原因について
Emailの仕様を設定している文章「RFC5322」というものに「行の長さの制限」という規定があるそうです。それによると
Emailにおいて1行(改行コードまで)の長さは、半角998文字を越えてはいけない(意訳)
とのことです。
RFC5322日本語訳「2.1.1. 行の長さの制限」
確かにメールフォームから送信された文章は、一切改行がなく、1行が異常に長い状態でした。
文字数をカウントしたところ、493文字目までは文字化けせずに表示され、次の494文字目から文字化けしました。まさにこれが原因でした。
まさか500文字以上の長文を、一切の改行なく、メールフォームの欄内に羅列してくるとは思いませんでした。これがネットリテラシーの格差ってやつでしょうか…。
もし、メールで一部だけ文字化けしていたら、「文字化け」=「文字コードが原因」と思い込まず、1行の文字数をチェックしてみてください。
最近のコメント