- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:formから入力された2バイト文字列を、別画面に渡したい)
formから入力された2バイト文字列を別画面に渡す方法
このQ&Aのポイント
- formから入力された2バイト文字列を別画面に渡す方法について説明します。遷移元画面で作成したformの入力値は、"searchlist.php"という別画面で受け取ることができます。
- 遷移元画面のformには、name属性が"SStr"であるinputタグがあります。入力された値は、GETメソッドで"searchlist.php"に送信されます。
- 遷移先の"searchlist.php"で、デバッガーを使用して"$_GET[SStr]"を参照すると、URLエンコードされた文字列が表示されます。入力値を遷移先ページで正しく受け取るには、URLエンコードされた文字列をデコードする必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
文字コードがずれてるか、透過変換してしまってるか、あるいは、、、 とりあえず、送信元、送信先がUTF-8 で保存されてるか確認。 問題なければ mbstring.encoding_translation が On になってないか確認。 つか、無駄な変換しとらんよね。 UTF-8 の文字を SJIS として UTF-8 に変換すると例示が得られる。 ついでに default_encoding, mbstring.internal_encoding 辺り、mb 系のディレクティブを要確認 内部の文字コード位はしっかり管理しる。 外部から来るやつは仕方ないので何らかの処置を取る。 どうでもいいけど マルチバイト == 2バイトとは限らない それから、以前にも書いたけど、PHP 5 以降は $_GET[SStr] の書き方は許されていない。 例示ではまず 定数 SStr を探しにいく。定数がなければ文字列 SStr として扱う。 http://www.php.net/manual/ja/language.types.array.php#language.types.array.donts
その他の回答 (1)
- hige_mario
- ベストアンサー率51% (18/35)
回答No.2
チープな回答で失敬します。 一度method="POST"で試してみてはいかがですか? urlencodeを無関係にして、そもそも文字エンコードのトラブルが無いか試してみると良いかもしれません。文字エンコードのトラブルはサーバー環境やらスクリプトの不備など、意外と複雑なものです。極力シンプルに整理してトラブルの根本を見つけるのが近道だと思います。