ホームページ > バックエンド開発 > PHPチュートリアル > PHPのurlencode関数を使ったURLエンコードの詳しい解説 php urlencode python urlencode urlencode オンライン変換

PHPのurlencode関数を使ったURLエンコードの詳しい解説 php urlencode python urlencode urlencode オンライン変換

WBOY
リリース: 2016-07-29 08:50:05
オリジナル
1426 人が閲覧しました

URLEncode: Web ページ URL 内の漢字のエンコードおよび変換方法を指します。最も一般的なものは、Baidu や Google などの検索エンジンに中国語のクエリが入力されると、エンコードされた Web ページ URL が生成されます。

URLEncode には通常 2 つの方法があり、1 つは GB2312 に基づく従来のエンコード (Baidu、Yisou などで使用)、もう 1 つは UTF-8 エンコード (Google、Yahoo などで使用) に基づいています。

このツールは、エンコードとデコードの 2 つのメソッドを実装します:

GB2312 のエンコード -> %D6%D0%CE%C4

UTF-8 のエンコード -> %B8 %AD%E6%96%87

URLEncode in HTML:

GB2312 としてエンコードされた HTML ファイル内: http://s.jb51.net/中文.rar -> ブラウザは自動的に -> に変換します。 //s.jb51.net/%D6%D0%CE%C4.rar

注: Firefox はデフォルトで URL を UTF-8 エンコードで送信するため、GB2312 エンコードの中国語 URL をサポートしていませんが、ftp:/ / プロトコルは機能します。試してみましたが、これは Firefox のバグだと思います。

UTF-8 としてエンコードされた HTML ファイル内: http://s.jb51.net/中文.rar -> ブラウザは自動的に http://s.jb51.net/%E4%B8 に変換します。 %AD%E6%96%87.rar

PHP での URLEncode:

<?php 
//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"; //中文-_. 
?>
ログイン後にコピー

「-_.」を除くすべての非英数字文字は、パーセント記号「%」とそれに続く 2 桁の 16 進数に置き換えられます。

urlencode と rawurlencode の違い: urlencode はスペースをプラス記号「+」としてエンコードし、rawurlencode はスペースをプラス記号「%20」としてエンコードします。

UTF-8 エンコードを使用する場合は、2 つの方法があります:

1. ファイルを UTF-8 ファイルとして保存し、urlencode または rawurlencode を直接使用します。

2. mb_convert_encoding 関数を使用します:

<?php 
$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 
?>
ログイン後にコピー

例: JavaScript での

<?php 
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 
?>
ログイン後にコピー

URLEncode:

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

encodeURI は、「:」、「/」、「;」、「?」、「@」およびその他の特殊文字をエンコードしません。

以上、PHP の urlencode 関数を使用した URL エンコードの詳細な説明を、urlencode の内容も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート