zoukankan      html  css  js  c++  java
  • php urlencode()函数URL编码转换实例解析

    URLEncode:是对网页url所包含中文字符的一种编码转化方式,URLEncode有两种常见方式,一种是基于GB2312的 Encode(Baidu、Yisou等搜索引擎使用),另一种是基于UTF-8的Encode(Google、Yahoo等使用)。下面来看两种方式的 Encode与Decode的区别:

    中文 -> GB2312的Encode -> %D6%D0%CE%C4

    中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87

    Html网页中的URLEncode:

    编码为GB2312的html文件中:http://www.baidu.com/中文.rar -> 浏览器自动转换为 -> http://www.baidu.com/%D6%D0%CE%C4.rar

    后来发现Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,这应该算是火狐的一个bug。

    下面来看一段PHP中URLEncode编码转换的代码实例:

    //GB2312中的Encode示例
    echo urlencode("中文-_. ")."
    "; //%D6%D0%CE%C4-_.+
    echo urldecode("%D6%D0%CE%C4-_. ")."
    "; //中文-_.
    echo rawurlencode("中文-_. ")."
    "; //%D6%D0%CE%C4-_.%20
    echo rawurldecode("%D6%D0%CE%C4-_. ")."
    "; //中文-_.

    除了“-_.”之外的所有非字母数字字符都将被替换成百分号“%”后跟两位十六进制数。

    urlencode和rawurlencode的区别:urlencode将空格编码为加号“+”,rawurlencode将空格编码为加号“%20”。

    如果要使用UTF-8的Encode,有两种方法:

    第一种是将文件保存为UTF-8文件,直接使用urlencode、rawurlencode即可。

    第二种方法是使用mb_convert_encoding函数转换,示例代码如下:

    $url='http://www.baidu.com/中文.rar';
    echo urlencode(mb_convert_encoding($url,'utf-8','gb2312'))."
    ";
    echo rawurlencode(mb_convert_encoding($url,'utf-8','gb2312'))."
    ";

    注:encodeURI不对“:”、“/”、“;”、“?”、“@”等特殊字符进行编码。

  • 相关阅读:
    判断文件是否存在
    peewee模块更改数据-sqlite
    Python操纵数据库:peewee
    PyQt5调用主窗口
    FHQ-Treap学习笔记
    P3047 [USACO12FEB]Nearby Cows G(树形DP)
    P2986 [USACO10MAR]Great Cow Gathering G(树形DP)
    【普及】Codeforces Round #713(Div 3) 1512A~G
    P1272.重建道路(树形背包)
    P273.有线电视网(树上背包)
  • 原文地址:https://www.cnblogs.com/phpfensi/p/4333784.html
Copyright © 2011-2022 走看看