假设我有一个url为    http://www.abc.com/search.php?kw=张山
我怎么才能把他编码成 http://www.abc.com/search.php?kw=%D5%C5%C9%BD
就是只把中文部分编码
如果直接使用urlencode的话会把冒号和反斜杠也转义了变成http%3A%2F%2Fwww.abc.com%2Fsearch.php%3Fkw%3D%D5%C5%C9%BD现在知道的url格式不是固定的,也就是说不知道那个位置会有中文的...请问怎么才能把其中的中文编码呢?

解决方案 »

  1.   

    1.提交时,用js处理下
    var keyword=document.getElementById('keyword').value;
    location.href='search.php?kw='+encodeURIComponent(keyword);
    2.然后search.php页面接到值时解码:
    $keyword=urldecode($_GET['kw']);
    这是最常用的方法
    楼主自己想的那种,只对kw参数值urlencode不就OK了?
      

  2.   

    $url = "http://www.abc.com/search.php?kw=张山";
    $result = parse_url($url);
    parse_str($result['query'], $query);
    $url = $result['scheme'].'://'.$result['host'].$result['path'].'?'.http_build_query($query);可以这样子实现。不过URL如果是你自己生成的,不必须这么麻烦吧。不知道URL你是如何得到的。