在浏览器中输入此 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
上面的网址只是一个简单的例子,我需要一个通用的解决方案,也适用于
http://www.example.com/ä
http://www.example.com/ä?foo=ä&bar=ö
http://www.example.com/Περιβάλλον?abc=Περιβάλλον
这里提供的答案不够通用: How to encode URL using php like browsers do