首頁 php教程 php手册 php的urlencode()URL编码函数浅析

php的urlencode()URL编码函数浅析

Jun 06, 2016 pm 08:38 PM
urlencode url編碼

URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu、Google等搜索引擎中输入中文查询时候,生成经过Encode过的网页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://s.jb51.net/中文.rar -> 浏览器自动转换为 -> http://s.jb51.net/%D6%D0%CE%C4.rar

注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了,我认为这应该算是Firefox一个bug。

编码为UTF-8的html文件中:http://s.jb51.net/中文.rar -> 浏览器自动转换为 -> http://s.jb51.net/%E4%B8%AD%E6%96%87.rar

PHP中的URLEncode:
代码如下:
//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”。

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

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

二、使用mb_convert_encoding函数:
代码如下:
$url = 'http://s.jb51.net/中文.rar';
echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
//http%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6%96%87.rar
?>


实例:
代码如下:
function parseurl($url="")
{
$url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8'));
$a = array("%3A", "%2F", "%40");
$b = array(":", "/", "@");
$url = str_replace($a, $b, $url);
return $url;
}
$url="ftp://ud03:password@s.jb51.net/中文/中文.rar";
echo parseurl($url);
//ftp://ud03:password@s.jb51.net/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
?>


JavaScript中的URLEncode:

如:%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20

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

如:http://s.jb51.net/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6%96%87.rar
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 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)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1319
25
PHP教程
1269
29
C# 教程
1249
24
如何解決Java開發中的URL解碼異常 如何解決Java開發中的URL解碼異常 Jun 29, 2023 pm 02:07 PM

如何解決Java開發中的URL解碼異常在Java開發中,我們經常會遇到需要解碼URL的情況。然而,由於不同的編碼方式或不規範的URL字串,有時會出現URL解碼異常的情況。本文將介紹一些常見的URL解碼異常以及對應的解決方法。一、URL解碼異常的產生原因編碼方式不符:URL中的特殊字元需要進行URL編碼,即將轉換為以%開頭的十六進位值。解碼時,需要使

Python 3.x 中如何使用urllib.parse.quote()函數對URL進行編碼 Python 3.x 中如何使用urllib.parse.quote()函數對URL進行編碼 Jul 31, 2023 pm 10:46 PM

Python3.x中使用urllib.parse.quote()函數對URL進行編碼在網路應用開發中,經常會遇到需要對URL進行編碼的情況,這是由於URL中允許的字元有限,而我們需要傳遞的參數可能包含了特殊字元。 Python中的urllib.parse模組提供了quote()函數,可以對URL中的非法字元進行編碼,使之成為合法的URL字串。本文將透過世代

如何利用PHP函數進行URL編碼和解碼? 如何利用PHP函數進行URL編碼和解碼? Jul 24, 2023 pm 11:21 PM

如何利用PHP函數進行URL編碼和解碼?在PHP中,URL編碼和解碼是非常常見的操作。 URL編碼是將URL中的特殊字元轉換為對應的編碼值,常見的特殊字元包括空格、斜線、問號等。而URL解碼則是將編碼值轉換回原始的特殊字元。 PHP提供了一系列函數來實作URL編碼和解碼的功能,本文將介紹常用的urlencode()和urldecode()函數,並給出對應的程式碼示

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進行編碼 Nov 18, 2023 am 08:53 AM

使用PHP中的urlencode()函數對URL進行編碼的具體程式碼範例如下:&lt;?php//定義要編碼的URL$url="https://www.example.com/search?q=一個中文查詢";//對URL進行編碼$encodedUrl=urlencode($url);echo"編碼前

Python 2.x 中如何使用urllib.quote()函數對URL進行編碼 Python 2.x 中如何使用urllib.quote()函數對URL進行編碼 Jul 31, 2023 pm 08:37 PM

Python2.x中如何使用urllib.quote()函數對URL進行編碼URL中包含了多種字符,包括字母、數字、特殊字符等。為了使URL能夠正確地傳輸和解析,我們需要對其中的特殊字元進行編碼。在Python2.x中,可以使用urllib.quote()函數對URL進行編碼,下面我們來詳細介紹其用法。 urllib.quote

Python 3.x 中如何使用urllib.parse.urlencode()函數對參數進行編碼 Python 3.x 中如何使用urllib.parse.urlencode()函數對參數進行編碼 Aug 03, 2023 pm 03:18 PM

Python3.x中如何使用urllib.parse.urlencode()函數對參數進行編碼在進行網路程式設計或進行HTTP請求時,往往需要對URL中的參數進行編碼。而Python中的urllib模組提供了方便的urlencode()函數來進行URL參數的編碼。本文將介紹如何在Python3.x中使用urllib.parse.urlencode()函

在JavaScript中使用encodeURI函數對URL進行編碼 在JavaScript中使用encodeURI函數對URL進行編碼 Nov 18, 2023 am 10:37 AM

在JavaScript中使用encodeURI函數對URL進行編碼,我們可以透過以下程式碼範例來示範://原始URLconsturlString="https://www.example.com/路徑/檔案.html?參數=值&參數2=值2";//使用encodeURI函數對URL進行編碼constencoded

See all articles