• 締切済み

メール送信フォームで文字化けします

メールの送信フォームをフラッシュベースで作ってるのですが、英数字以外が文字化けしてしまいます。 例えば「テストです。」と入力した物が 「%83e%83X%83g%82%C5%82%B7%81B」と文字化けします。 getURLでメール送信のcgiのアドレスをいれ、形式は"get"にしてます。(cgiの方も合わせてます) "post"にしたら何も文字が表示されませんでした。 スクリプトの記述の一番最初のところに System.useCodepage=true と書いてもだめでした。 どうしたらいいのかわかりません。 教えていただけますか。 よろしくお願いいたします。

みんなの回答

回答No.2

Liteあがりなので、Player6についての記述がよく分からないのですが、以前、自分が送信された内容のテキストファイルを自動作成するCGIを作ったときは、textフィールドの中身をData=unescape("変換させたいテキスト"orテキストが代入された変数名)等で、いったん、デコードして入れなおしてからgetURLで送ったらうまいこといきました。 見たところ、文字化けの仕方がURLエンコードしたもの(escapeかけたもの)と同じのようです。 参考までに、参考URLのテキストボックスに「テストです」と入れて変換すると、まったく同じ文字化けになると思います。つまり、その逆をして(デコードして)から送信してみては?、ということです。(といっても他に原因があるかもしれませんが) うまくいくといいですね。

参考URL:
http://www.shtml.jp/mojibake/sjis_cgi.html
すると、全ての回答が全文表示されます。
回答No.1

普通にunescapeかけてからgetURLしてみてもだめでしょうか。

teddywan
質問者

補足

ご回答ありがとうございます。 申し訳ないのですが、unescapeとはなんでしょう? それから、スクリプトは↓のようなものです。 お分かりになりましたら教えてください。 よろしくお願いいたします。 ////初期処理 //選択時の長方形を表示しない _root._focusrect = false; //メールアドレス入力制限 mail_txt.restrict = "A-Za-z0-9@._-"; //メールアドレステキストフォーカス喪失時の処理 mail_txt.onKillFocus = function(){ //メールの書式として適切でなかったら if ( !xCheckMailString(this.text)){ //フォーカスを当てる Selection.setFocus(this); } } //名前・メッセージ用テキストフォーカス喪失時処理 name_txt.onKillFocus = message_txt.onKillFocus = function(){ xSetEnabled( send_btn, xCheckInput()); } //送信ボタン設定 send_btn.onRelease = function(){ var tempMC = createEmptyMovieClip("send_mc", 888); tempMC.System.useCodepage=true; tempMC.name = name_txt.text; tempMC.mail = mail_txt.text; tempMC.age = xStringToNumber( age_txt.text ); tempMC.message = message_txt.text; //※.下記URLには送信データ処理用サーバプログラムのURLを指定する tempMC.getURL("http://xxxxxx.jp/cgi-bin/mail.cgi","_self","get"); } //送信ボタン使用不可に xSetEnabled( send_btn, false);

すると、全ての回答が全文表示されます。

関連するQ&A