• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:urlencodeしていない日本語をPATH_INFOで)

urlencodeしていない日本語をPATH_INFOで受け取る方法

このQ&Aのポイント
  • Wikipedia等のようにURLに直接書かれた日本語をPATH_INFOで受け取って処理する方法を知りたいです。
  • PHPの場合、urlencodeしていない日本語をPATH_INFOで正しく受け取る方法が分かりません。文字化けが起きずに正常に受け取る方法を教えてください。
  • EUC-JPで受け取りたい場合でも文字化けが起きずに受け取る方法を教えてください。php.iniは変更できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

$_SERVER['REQUEST_URI']にurlencodeされたままのデータがあると思うので それを切り出して使うのはどうでしょうか?

yakkuncom
質問者

お礼

有り難う御座います。 やってみましたが、$_SERVER['PATH_INFO']と全く同じ値でした。 $_GETなら問題なく受け取れるんですがね・・・

yakkuncom
質問者

補足

すみません、レンタルサーバー(Apache)の方で試してみたら「urlencodeされたままのデータ」が取得できました。 ローカルの環境がHTTPD(+WindowsXP)だからでしょうか? php.iniで、 $_SERVER["REQUEST_URI"] = $_ENV["REQUEST_URI"] = $_SERVER["ORIG_REQUEST_URI"] = をprependしたところ、 C:\~\test.php と表示されましたが、肝心の[/日本語]の部分が得られません。 HTTPDでは無理なのでしょうか。 実際の稼動時はレンタルサーバーなのですが、 ローカルで動作チェックが出来ないのは辛いものがあります・・・ Apacheは何故か、インストール時に必ずエラーが出て 強制終了してしまうため使えないのです。(こちらの解決が先手なのかも)

その他の回答 (1)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

ANHTTPD?はApacheと環境変数の取り扱いが違うみたいなので できれば統一した方がいいかと思います。 .htaccessが使えるなら入力値の自動変換を無効にするとか。

yakkuncom
質問者

お礼

アドバイス有り難う御座います。 AN HTTPDでしたね・・・失礼しました。 AN HTTPDは残念ながら.htaccessは使えないようです。 オプション設定にもそれらしき項目は見当たりませんでした。 どうにかApacheに切り替えたいのですが・・・。 この質問は別のカテゴリですべきですね。 結局のところ、PATH_INFOでは英文や半角記号等以外は 受け取れないということでしょうかね; もう少し、他のやり方を探してみます。

関連するQ&A