記事No | : 4345 |
投稿日 | : 2008/08/22(Fri) 11:05:27 |
タイトル | : postmailで長文を改行なしで投稿すると文字化け |
ID情報 | : milkrel |
投稿者 | : 村上 進 |
URL | : http://kokoro.squares.net/postmail/QApost.html |
postmailで長文を改行なしで投稿すると、途中から文字化けします。
その後1バイト文字(半角英数)が現れると、そこから元に戻ります。
> 12月ぁ
> K$O2HB2A40w$,%9%-!
というような感じです。 文字化けの始まる文字で、原文になかった改行が挿入されているのが特徴です。
いろいろ調べたところ、1000バイト以上改行なしで送ると、サーバが勝手な場所で改行を入れるため、そこで2バイト文字が切れてしまい、以降組み合わせがずれるという現象があるようです。
postmail+mimew の組み合わせで、1000バイトを越えそうな時にはきちんと2バイト文字の切れ目で「エスケープ処理をした改行」を挟むようにする方法があればご教示いただけませんか。 あるいはその対策を施したバージョンがありますか?
メールフォームを投稿しているサーバはさくらのレンタルサーバ(スタンダード)
FreeBSD 6.1-RELEASE-p23
Apache/1.3.39
sendmail 8.13.6
POST-MAIL v3.41
mimew.pl Ver.2.02
です。
記事No | : 4346 |
投稿日 | : 2008/08/22(Fri) 11:25:14 |
タイトル | : Re: postmailで長文を改行なしで投稿すると文字化け |
ID情報 | : pachira |
投稿者 | : pachira |
URL | : http://www5e.biglobe.ne.jp/~pachira/ |
> postmailで長文を改行なしで投稿すると、途中から文字化けします。
> その後1バイト文字(半角英数)が現れると、そこから元に戻ります。
>
> > 12月ぁ
> > K$O2HB2A40w$,%9%-!
>
> というような感じです。 文字化けの始まる文字で、原文になかった改行が挿入されているのが特徴です。
>
> いろいろ調べたところ、1000バイト以上改行なしで送ると、サーバが勝手な場所で改行を入れるため、そこで2バイト文字が切れてしまい、以降組み合わせがずれるという現象があるようです。
>
> postmail+mimew の組み合わせで、1000バイトを越えそうな時にはきちんと2バイト文字の切れ目で「エスケープ処理をした改行」を挟むようにする方法があればご教示いただけませんか。 あるいはその対策を施したバージョンがありますか?
>
> メールフォームを投稿しているサーバはさくらのレンタルサーバ(スタンダード)
> FreeBSD 6.1-RELEASE-p23
> Apache/1.3.39
> sendmail 8.13.6
>
> POST-MAIL v3.41
> mimew.pl Ver.2.02
>
> です。
お調べのとおり、インターネットメールの仕様ですね。
ところで、改行なしの1000bytesって必要なのでしょうか?
非常識以外の何者でもないと思いますが。
記事No | : 4348 |
投稿日 | : 2008/08/22(Fri) 21:20:01 |
タイトル | : Re^2: postmailで長文を改行なしで投稿すると文字 |
ID情報 | : milkrel |
投稿者 | : 村上 進 |
URL | : http://kokoro.squares.net/postmail/QApost.html |
> お調べのとおり、インターネットメールの仕様ですね
そのようですね。 その仕様の中で送信者が記述したものをすべて読めるような形で受信したい、というのが現在直面している課題です。 1投稿あたり、最大100キロバイト(5万字)ぐらいで切ってもいいとは思いますが。
> ところで、改行なしの1000bytesって必要なのでしょうか?
> 非常識以外の何者でもないと思いますが。
このフォームを設置しようとしているのは、こころを病んでいる人が精神科医に質問を投げるサイトなんです。
ですので、一般の方から見れば非常識と思われるような、切れ目ない長文が送られてくることもめずらしくありません。けれども投稿者を責めることはできないのです。 背景事情お察し下さい。
記事No | : 4349 |
投稿日 | : 2008/08/22(Fri) 22:00:34 |
タイトル | : Re^3: postmailで長文を改行なしで投稿すると文字 |
ID情報 | : teketen |
投稿者 | : てけてん |
1000文字で区切るわけではありませんが、強制的に何文字ごとに改行を入れるというのは、如何でしょうか?
一番簡単な対処法は、入力フォームのtextareaにwrap属性でhardを指定することでしょうか。
(但し、外部フォームからの不正な送信(スパムなど)に対しては効果はありません)
参考URL
http://www.tagindex.com/html_tag/form/textarea.html
スクリプトを改造して対応する方法もありますが、取り合えず、これで様子をみては如何でしょうか?
記事No | : 4350 |
投稿日 | : 2008/08/23(Sat) 10:37:35 |
タイトル | : Re^4: postmailで長文を改行なしで投稿すると文字 |
ID情報 | : milkrel |
投稿者 | : 村上 進 |
URL | : http://kokoro.squares.net/postmail/QApost.html |
> 一番簡単な対処法は、入力フォームのtextareaにwrap属性でhardを指定することでしょうか。
うわぁ。 盲点でした。 スクリプトの改造の方にばかり意識が行っていて基本的なことに気づきませんでした。
早速試してみて、文字化けしないことを確認しました。 アドバイスありがとうございます!!