PHP urlencode()和urldecode()函数详解

定义

urlencode - 将传入的字符串进行URL编码

描述

urlencode ( string $str ) : string

其返回的字符串中除了 —_. 和数字字母外,所有其他字符 non-alphanumeric 都被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。
此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。

此函数便于将字符串编码并将其用于URL的请求参数,同时还便于将变量编码后传递给下一页。

urlencode是指针对网页url中的中文字符的一种编码转化方式,一般有两种,分别基于GB2312和UTF-8,如下

中文 -> GB2312的Encode -> %D6%D0%CE%C4
中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87

示例

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

urlencode和rawurlencode的区别

urlencode 将空格则编码为加号(+)
rawurlencode 将空格则编码为加号(%20)


urldecode

urldecode - 解码已编码的 URL 字符串

urldecode ( string $str ) : string

urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符。
Decodes any %## encoding in the given string.

posted @ 2020-04-21 09:25  皎然CEO  阅读(1395)  评论(0编辑  收藏  举报