php的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

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Java 開発における URL デコード例外の解決方法 Java 開発では、URL をデコードする必要がある状況によく遭遇します。ただし、エンコード方式の違いや標準外の URL 文字列などにより、URL デコード異常が発生する場合があります。この記事では、一般的な URL デコード例外とそれに対応する解決策をいくつか紹介します。 1. URL デコード例外の原因はエンコード方式の不一致です。URL 内の特殊文字は URL エンコードする必要があります。つまり、% で始まる 16 進数値に変換する必要があります。デコードするときは、次を使用する必要があります

PHP の urlencode() 関数: 文字列を URL セーフな形式にエンコードする方法、具体的なコード例が必要です。インターネットの発展に伴い、URL は日常生活で広く使用されており、多くの場合、いくつかの特殊文字を使用して文字列をエンコードする必要があります。 URL セーフ形式への変換 URL でパラメータを渡すか、Web ページを要求する形式。 PHP には、このタスクを実行するための urlencode() 関数が用意されています。この記事では、urlencode() 関数の使用法を紹介し、具体的なコード例をいくつか示します。 1. 君

urllib.parse.quote() 関数を使用して、Python3 で URL をエンコードします。パラメータには特殊文字が含まれる場合があります。 Python の urllib.parse モジュールは、URL 内の不正な文字を正当な URL 文字列にエンコードできる quote() 関数を提供します。この記事はスルーされます

urllib.parse.urlencode() 関数を使用して Python3.x でパラメータをエンコードする方法: ネットワーク プログラミングを実行するとき、または HTTP リクエストを行うとき、多くの場合、URL 内のパラメータをエンコードする必要があります。 Python の urllib モジュールは、URL パラメータをエンコードする便利な urlencode() 関数を提供します。この記事では、Python3.x での urllib.parse.urlencode() 関数の使用方法を紹介します。

PHP で urlencode() 関数を使用して URL をエンコードする具体的なコード例は次のとおりです。 <?php//エンコードする URL を定義する$url="https://www.example.com/search?q =中国語のクエリ ";//URL をエンコードする $encodedUrl=urlencode($url);echo" エンコード前に

最新の開発では、URL を介してデータを渡すことが一般的な方法です。ただし、URL にはスペース、スラッシュ、疑問符などの特殊文字が含まれる場合があるため、これらの特殊文字によって URL の構造が破壊され、データ送信が失敗する原因になります。この状況を回避するために、PHP は URL を転送可能な形式にエンコードできる urlencode 関数を提供します。 urlencode 関数の使用は非常に簡単で、その構文は次のとおりです。

urllib.quote() 関数を使用して Python 2.x で URL をエンコードする方法。URL には、文字、数字、特殊文字など、さまざまな文字が含まれています。 URL を送信して正しく解析するには、URL 内の特殊文字をエンコードする必要があります。 Python2.xではurllib.quote()関数を使ってURLをエンコードすることができるので、その使い方を詳しく紹介します。 URLlib.quote

JavaScript で encodeURI 関数を使用して URL をエンコードすると、次のコード例でそれを実証できます。 //original URLconsturlString="https://www.example.com/path/file.html?parameter=value¶meter2=value 2" ;// encodeURI 関数を使用して、コンステンコードされた URL をエンコードします
