MW211 EXIT

devlog
PHP/URLエンコード
2011年11月17日
まずは、基本から。
┌──────────────────────────────────────┐
│エンコードされた値 = urlencode(元の値);                                     │
├──────────────────────────────────────┤
│元の値 = urldecode(エンコードされた値);                                     │
└──────────────────────────────────────┘

で、実用編。
GETパラメータで日本語を扱いたい場合、
例えば年号をそのままパラメータとしたい場合、以下のような感じになる。
┌──────────────────────────────────────┐
│http://….php?nengo=平成                                                    │
└──────────────────────────────────────┘

これくらいなら問題ないけど、記号とか絡んでくるとややこしいので、
┌──────────────────────────────────────┐
│「%E5%B9%B3%E6%88%90」 ← urlencode('平成')                                 │
└──────────────────────────────────────┘
上記のようか感じでエンコードして、それで渡してあげる。
┌──────────────────────────────────────┐
│http://….php?nengo=%E5%B9%B3%E6%88%90                                      │
└──────────────────────────────────────┘
んでもって、受け取る側でデコードして元に戻して受け取るという感じ。
┌──────────────────────────────────────┐
│「平成」 ← urldecode($_GET['nengo])                                        │
└──────────────────────────────────────┘
これは文字コード「UTF-8」の場合の例です。

送り側も、受け側も同じ文字コードであれば問題ないけど
もし、違う文字コードの場合は文字コード変換とか絡んでくるのだろう。
分類:PHP