この URL をブラウザに入力すると、次のようになります。http://www.google.com/?q=ä
実際に送られてきたURLはhttp://www.google.com/?q=%C3%A4
PHP を使用して同じ変換を行いたい - どうすればよいですか?
私が試したこと:
$url = 'http://www.google.com/?q=ä'; //utf8 encoded
echo rawurlencode($url);
//gives http%3A%2F%2Fwww.google.com%2F%3Fq%3D%C3%A4
$u = parse_url($url);
echo $url['scheme'].'://'.$url['host'].$url['path'].'?'.rawurlencode($url['query']);
//gives http://www.google.com/?q%3D%C3%A4
上記の URL は単なる例です。
http://www.example.com/ä
http://www.example.com/ä?foo=ä&bar=ö
http://www.example.com/Περιβάλλον?abc=Περιβάλλον
ここで提供される答えは十分に一般的ではありません: ブラウザーのように php を使用して URL をエンコードする方法