首页 后端开发 php教程 php urlencode()与urldecode()函数字符编码原理详解_php技巧

php urlencode()与urldecode()函数字符编码原理详解_php技巧

May 17, 2016 am 09:14 AM
urldecode urlencode

其原理就是把中文字符转换为十六进制并按某种规则进行字符串组合,实现字符的编码与解编码,保证URL数据传递过程中字符的完整性和兼容性,主要讨论中文字符的编码情况。

一,FireFox浏览器编码中文字符

在Firefox浏览器下如果输入中文字符,将会自动实现URL编码,如下

按下Enter键前
php-internet-url-encode-before
按下Enter键后
php-internet-url-encode

二,urlencode()函数原理

urlencode()函数用于编码URL字符串,这里主要讨论中文字符的编码情况,

实例如下

复制代码 代码如下:

echo urlencode('不要迷恋哥');//输出:%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7

urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%,了解了这个原理,可以实现自定义的URL编码函数,代码如下
复制代码 代码如下:

$string = "不要迷恋哥";
$length = strlen($string);
echo $string;
$result = array();
//十进制
for($i=0;$iif(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
//十六进制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = "%".dechex($dec[0])." "."%".dechex($dec[1]);
}
var_dump($strings);

php-self-urlencode

上面代码在[PHP实现中文字符进制转换原理分析]一文中中文字符转十六进制原理分析部分有详细讨论,通过获取汉字的各个字符再转换为十六进制,同时在每个字符前面加上一个特殊的标识符%,就实现了urlencode()函数的功能,输出结果如下
然后对输出的结果与直接使用urlencode()编码的字符进行比较,如上:%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7

通过上面实例可知,使用urlencode()函数编码中文字符实质上就是把字符转换为十六进制再在第个字符左边加上一个特殊的标识符%

三,urldecode()函数原理

使用urldecode()函数解码已编码的 URL 字符串,实例如下

echo urldecode('%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7');//输出:不要迷恋哥
urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符,结合上面实例,同样可实现自定义函数解码字符串
复制代码 代码如下:

$string = '%B2%BB%D2%AA%C3%D4%C1%B5%B8%E7';
$length = strlen($string);
$hexs = array();
for($i=0;$iif($string[$i] == '%'){
$hexs[] = $string[++$i].$string[++$i];
}
}
$num = count($hexs);
for($i=0;$iecho chr(hexdec($hexs[$i])).chr(hexdec($hexs[++$i]));
}

上面实例代码首先按字符串的规则取出各个字符的十六进制,然后使用hexdec()函数把十六进制转换为十进制,然后再使用chr()函数把十进制转换为字符,实现十六进制转换为字符。输出结果如下

php-self-urldecode

四,urldecode()与urlencode()函数说明

urlencode
(PHP 3, PHP 4, PHP 5)
urlencode -- 编码 URL 字符串
说明
string urlencode ( string str )
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页

urldecode
(PHP 3, PHP 4, PHP 5)
urldecode -- 解码已编码的 URL 字符串
说明
string urldecode ( string str )
解码给出的已编码字符串中的任何 %##。返回解码后的字符串。

五,参考资源
urlencode()说明
urldecode()说明
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP的urldecode()函数:如何将URL编码的字符串解码为原始字符串并处理解码错误 PHP的urldecode()函数:如何将URL编码的字符串解码为原始字符串并处理解码错误 Nov 03, 2023 pm 03:17 PM

PHP的urldecode()函数创建于PHP4,是一种常见的URL解码方法。URL编码是一种将URL中的非英文字符转换为特殊字符的方法,以便将URL传输到服务器或以其他方式处理URL。而urldecode()函数则是将这些特殊字符还原为原始的字符串。该函数的语法为:stringurldecode(string$str)参数str表示需要解码的字符

PHP的urlencode()函数:如何将字符串编码为URL安全格式 PHP的urlencode()函数:如何将字符串编码为URL安全格式 Nov 03, 2023 pm 12:39 PM

PHP的urlencode()函数:如何将字符串编码为URL安全格式,需要具体代码示例随着互联网的发展,URL在日常生活中被广泛使用,我们经常需要将一些特殊字符的字符串编码为URL安全格式,以便在URL中传递参数或者请求网页。PHP中提供了urlencode()函数来完成这个任务。本文将介绍urlencode()函数的用法,并给出一些具体的代码示例。一、ur

PHP中如何使用urlencode函数对URL进行编码 PHP中如何使用urlencode函数对URL进行编码 Jun 26, 2023 pm 12:48 PM

在现代开发中,将数据通过URL进行传递是一种常见的方式。然而,由于URL中可能含有一些特殊字符,例如空格、斜杠和问号等,这些特殊字符会破坏URL的结构,导致传输数据失败。为了避免这种情况的发生,PHP提供了urlencode函数,可以将URL编码为可传输的格式。urlencode函数的使用非常简单,它的语法如下:stringurlencode(string

PHP中的urldecode()函数用于对URL进行解码 PHP中的urldecode()函数用于对URL进行解码 Nov 18, 2023 am 10:07 AM

PHP中的urldecode()函数用于对URL进行解码,将被转义的字符恢复为原始字符。在处理URL中的参数时,经常需要使用urldecode()函数。urldecode()函数的语法如下:stringurldecode(string$str)其中,$str是要解码的URL字符串。urldecode()函数会将字符串中的%xx替换为相应的字符,xx

PHP函数介绍—urlencode(): 对URL进行编码 PHP函数介绍—urlencode(): 对URL进行编码 Jul 25, 2023 pm 09:25 PM

PHP函数介绍—urlencode():对URL进行编码在开发网页应用程序时,经常会遇到需要对URL进行编码的情况。URL编码可以确保URL中的特殊字符正确传递,避免出现问题或错误的结果。在PHP中,我们可以使用urlencode()函数来进行URL编码。urlencode()函数的作用是将字符串转换为符合URL规范的编码格式。它将字符串中的非字母数字字符转

urlencode函数怎么用 urlencode函数怎么用 Nov 15, 2023 am 11:45 AM

用法有:1、用于编码字典;2、用于编码列表;3、用于编码嵌套列表;4、指定分隔符等等。

Python 2.x 中如何使用urllib.urlencode()函数对参数进行编码 Python 2.x 中如何使用urllib.urlencode()函数对参数进行编码 Jul 29, 2023 pm 12:57 PM

Python2.x中如何使用urllib.urlencode()函数对参数进行编码在编程过程中,我们经常需要与服务器进行交互并传递参数。而传递参数的过程中,我们需要对参数进行合适的编码,以确保数据的正确传输和解析。Python提供了urllib库,其中的urlencode()函数就是用来对参数进行编码的工具。下面我们就来看一下在Python2.x

PHP中如何使用urlencode函数将特殊字符进行编码 PHP中如何使用urlencode函数将特殊字符进行编码 Jun 26, 2023 pm 04:09 PM

在PHP中,我们经常需要将URL中的特殊字符进行编码,以便正确地传递参数。这时候就可以使用urlencode函数。urlencode函数的作用就是将字符串中的特殊字符进行编码,以便在URL中传递。这些特殊字符包括:字母数字字符、标点符号、协议字符、部分保留字符等。下面是urlencode函数的基本语法:urlencode(string$str):str

See all articles