PHP には、Web ページの URL エンコードとデコードの問題を解決するための、urlencode()、urldecode()、rawurlencode()、および rawurldecode() などの関数があります。
urlencode について:
urlencode: Web ページ URL 内の漢字のエンコードおよび変換方法を指します。最も一般的なものは、Baidu や Google などの検索エンジンに中国語のクエリが入力されると、エンコードされた Web ページ URL が生成されます。一般に、urlencoding には 2 つの方法があります。1 つは従来の GB2312 ベースのエンコード (Baidu、Yisou などで使用)、もう 1 つは utf-8 ベースのエンコード (Google、Yahoo などで使用) です。この記事では、エンコードとデコードの 2 つの方法をそれぞれ分析します。
中国語 -> GB2312 のエンコード -> %D6%D0%CE%C4
中国語 -> utf-8 のエンコード -> %E4%B8%AD%E6%96%87
GB2312 としてエンコードされた HTML ファイル内:
http://www.phpernote.com/中文.rar -> ブラウザは自動的に http://www.phpernote.com/%D6%D0%CE%C4.rar
に変換します。
注: Firefox はデフォルトで utf-8 エンコードで URL を送信するため、GB2312 エンコードで中国語の URL を適切にサポートしていませんが、ftp:// プロトコルは問題ありません。これは Firefox のバグであると考えてください。
http://www.phpernote.com/中文.rar -> ブラウザは自動的に http://www.phpernote.com/%E4%B8%AD%E6%96%87.rar に変換します。
PHP の URL:
urlencode と rawurlencode の違い:
urlencode はスペースをプラス記号 (+) としてエンコードします
rawurlencode はスペースをプラス記号 (%20) としてエンコードします
utf-8 エンコードを使用したい場合は、2 つの方法があります:
1. ファイルを utf-8 ファイルとして保存します。urlencode または rawurlencode を直接使用します。 2. mb_convert_encoding 関数を使用します。
リーリー
応用例:
//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"; //中文-_.
興味がありそうな記事
JavaScriptの文字列エンコーディング関数escape、encodeURI、encodeURIComponentの比較と分析phpの文字列置換関数str_replaceはpreg_replaceより速いwww.bkjia.com