• 締切済み

違う文字コードのページへFORMデータを送る時

いつもお世話になっております。 EUC-JP のページからx-euc-jpのページへFORMを使いデータを渡しているのですが、どうも受け取り側で渡したデータが文字化けを起こしているようなのです。 原因が分かる方がいたら、ご教授下さい。 <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> <script type="text/javascript"> <!-- function sent2() { document.INPUT.submit(); } // --> </script> </HEAD> <BODY onload="sent2()"> <form name="INPUT" METHOD="POST" action="http://okwave.jp" ENCTYPE="text/plain"> <input type="hidden" name="arr1" value="555006303003"> </form> </BODY> </HTML>

みんなの回答

noname#19175
noname#19175
回答No.3

サーバー側で文字コードをEUC-JPからx-euc-jpへ変換すればいいのでは? どんな文字コードで送信するかはブラウザ依存なので、 どんなフォームを作る場合でも(テスト用とかで簡略する場合を除き)文字コードのチェックと変換は必要です。 ところで > <form name="INPUT" METHOD="POST" action="http://okwave.jp" ENCTYPE="text/plain"> > <input type="hidden" name="arr1" value="555006303003"> > </form> このフォームが全文ですか? もしenctypeの指定にかかわらずこのデータで文字化けや"555006303003"以外の文字が表示されるなら、 余計な処理をしていると思います。 (ContentヘッダやHTMLヘッダのcharsetが間違っていても、半角数字が文字化けすることはありません。 ただしUTF-16、UTF-32が指定された場合は文字化けします。)

tmkz7
質問者

お礼

解決しました!! ファイルをEUC-JPで保存してみたらうまくいきました。 元はISO-8859-1で保存していました。 初歩的なミスですいませんでした。。。

tmkz7
質問者

補足

回答ありがとうございます。 サーバ側と言うのは、受け取り側ってことですよね? 今回の背景としましては、formデータの受け取り側は、現在webで公開されている検索システムなのですが、検索結果画面に値を渡して結果ページを表示しようとしています。 以下が全文です。 <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp" /> <script type="text/javascript"> <!-- function sent() { document.INPUT.submit(); } // --> </script> </HEAD> <BODY onload="sent()"> <form name="INPUT" METHOD="POST" action="http://okwave.jp" ENCTYPE="text/plain"> <input type="hidden" name="arr1" value="555006303003"> </form> </BODY> </HTML> ちなみにmeta指定の所をEUC-JPとかにしてもだめでした。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

普通考えれば、受け取った側で、文字コードの 整合性をチェックしてデコードするような気がしますが。

tmkz7
質問者

補足

回答ありがとうございます。 受け取り側は、他サイトなので変更できないのです。。。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

フォームデータを受取るプログラムではURLエンコードされている前提で処理する場合が多いのでenctypeを省略してみては?

tmkz7
質問者

補足

回答ありがとうございます。 enctypeを省略して見ましたが同じでした。

関連するQ&A