ホームページ  >  記事  >  バックエンド開発  >  JS および PHP での URL エンコード変換:escape()、encodeURI()、encodeURIComponent()

JS および PHP での URL エンコード変換:escape()、encodeURI()、encodeURIComponent()

WBOY
WBOYオリジナル
2016-06-20 13:00:495521ブラウズ

JS および PHP での URL エンコード変換:escape()、encodeURI()、encodeURIComponent()

escape() メソッド:

このメソッドは、ASCII 文字と数字、および次の ASCII 句読点文字をエンコードしません: - !

encodeURI() メソッド:

このメソッドは、ASCII 文字と数字、および ASCII 句読点文字 - _ ! * ' ( ) をエンコードしません。

このメソッドの目的は、URI を完全にエンコードすることであるため、encodeURI() 関数は、URI 内で特別な意味を持つ次の ASCII 句読点文字をエスケープしません: ;/?:@&=+$ ,#

encodeURIComponent() メソッド:

このメソッドは、ASCII 文字と数字、および ASCII 句読点文字 - _ ! * ' ( ) をエンコードしません。

他の文字 (:;/?:@&=+$,# など、URI コンポーネントを区切るために使用される句読点) は、1 つ以上の 16 進数のエスケープ シーケンスで置き換えられます。

encodeURIComponent() 関数と encodeURI() 関数の違い:

前者は、引数が URI (プロトコル、ホスト名、パス、クエリ文字列など) の一部であると想定しているため、encodeURIComponent() 関数は、URI のさまざまな部分を区切るために使用される句読点をエスケープします。

概要:

3 つの関数の分析を通じて、escape() は、ASCII 文字、数字、特定の記号に加えて、渡されたすべての文字列をエスケープします。したがって、URL をエンコードしたい場合は、この方法は使用しないのが最善です。

URI 内の有効な文字はエンコードされないため、encodeURI() を使用して URI 全体をエンコードします。 encodeURIComponent メソッドは、単一の URIComponent (リクエスト パラメーターを参照) をエンコードするときに最も一般的に使用され、URL 全体に影響を与えることなくパラメーター内の中国語と特殊文字をエスケープできます。

ここでは、さまざまな JavaScript および PHP 関数がさまざまな一般的な文字にどのように適用されるかを確認できます。

Input JavaScript PHP
  escape encodeURI encodeURIComponent urlencode rawurlencode htmlentities
%20 %20 %20 + %20  
! %21 ! ! %21 %21 !
@ @ @ %40 %40 %40 @
# %23 # %23 %23 %23 #
$ %24 $ %24 %24 %24 $
% %25 %25 %25 %25 %25 %
^ %5E %5E %5E %5E %5E ^
& %26 & %26 %26 %26 &
* * * * %2A %2A *
( %28 ( ( %28 %28 (
) %29 ) ) %29 %29 )
- - - - - - -
_ _ _ _ _ _ _
= %3D = %3D %3D %3D =
+ + + %2B %2B %2B +
: %3A : %3A %3A %3A :
; %3B ; %3B %3B %3B; ;
. . . . . . .
" %22 %22 %22 %22 %22 "
' %27 ' ' %27 %27 '
\ %5C %5C %5C %5C %5C \
/ / / %2F %2F %2F /
? %3F ? %3F %3F %3F ?
< %3C %3C %3C %3C %3C <
> %3E %3E %3E %3E %3E >
~ %7E ~ ~ %7E %7E ~
[ %5B %5B %5B %5B %5B [
] %5D %5D %5D %5D %5D ]
{ %7B %7B %7B %7B %7B {
} %7D %7D %7D %7D %7D }
  %60 %60 %60 %60 %60  

 


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。