如:  
http://community.csdn.net?cn=中国&usa=%C3%C0%B9%FA能把上面URL转成 
http://community.csdn.net?cn=%D6%D0%B9%FA&usa=%C3%C0%B9%FA拆解转换倒是可以,有没有直接转换的方法?有内置函数吗?

解决方案 »

  1.   

    urlencode , urldecode 是不是这些?第一个urlencode ,后面的是反urlencode的
      

  2.   

    不是,我不转 query_string 编码。我是整个URL转成合法的。
    比如  firefox 你输入 
    http://community.csdn.net?cn=中国
    他就会转成 http://community.csdn.net?cn=%D6%D0%B9%FA如果用 urlencode 则 url 就无效了。因为他连 : // ? 这些都转了
      

  3.   


    谁叫你转 http:// 呢?你可以这样子
    <?phpecho "<a href=http://community.csdn.net?cn=".urlencode('中国')."&&usa=%C3%C0%B9%FA>连接文字</a>"?>
      

  4.   

    对啊,你只用转url中的变量值就行了
      

  5.   


    preg_replace_callback('/[^a-z0-9-_\/\.:%=&\?]+/i', create_function('$matches', 'return urlencode($matches[0]);'), $url);
    代码如上,不知有什么字符需补充呢?
      

  6.   

    问题我的字符串是完整的URL啊。
    parse_url可以分解。不过太麻烦。楼上的代码是可以了。就是不知有没漏字符
      

  7.   

    parse_url可以分解后还得判断原来是不是已经编码了呢,要不urlencode了两次就悲剧了!