- 締切済み
違う文字コードのページへ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>
- みんなの回答 (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が指定された場合は文字化けします。)
- yambejp
- ベストアンサー率51% (3827/7415)
普通考えれば、受け取った側で、文字コードの 整合性をチェックしてデコードするような気がしますが。
補足
回答ありがとうございます。 受け取り側は、他サイトなので変更できないのです。。。
- steel_gray
- ベストアンサー率66% (1052/1578)
フォームデータを受取るプログラムではURLエンコードされている前提で処理する場合が多いのでenctypeを省略してみては?
補足
回答ありがとうございます。 enctypeを省略して見ましたが同じでした。
お礼
解決しました!! ファイルをEUC-JPで保存してみたらうまくいきました。 元はISO-8859-1で保存していました。 初歩的なミスですいませんでした。。。
補足
回答ありがとうございます。 サーバ側と言うのは、受け取り側ってことですよね? 今回の背景としましては、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とかにしてもだめでした。