ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript は URL のトランスコーディングとデコーディングをどのように実装しますか?

JavaScript は URL のトランスコーディングとデコーディングをどのように実装しますか?

不言
不言オリジナル
2018-09-14 17:48:046200ブラウズ

この記事の内容は、JavaScript が URL のトランスコーディングとデコーディングを実装する方法に関するものです。必要な方は参考にしていただければ幸いです。

1.escape および unescape

escape() は、URL エンコードに直接使用することはできません。その実際の機能は、文字の Unicode エンコード値を返すことです。

Unicode 文字セットを使用して、0 ~ 255 を除く指定された文字列をエンコードします。すべてのスペース、句読点、特殊文字、およびその他の関連する非 ASCII 文字は、%xx 形式の文字エンコーディングに変換されます (xx は、文字セット テーブルの文字エンコーディングの 16 進数と同じです)。たとえば、スペース文字に対応するエンコーディングは です。
Escape は 69 文字: *、-、.、/、@、_、0-9、a-z、A-Z をエンコードしません。

escape() 関数は、js で文字列をエンコードするために使用されますが、一般的には使用されません。

エンコード:

escape('http://www.baidu.com?name=zhang@xiao@jie&order=1')

結果: "http://www.baidu.com?name=zhang@xiao@jie&order=1"

scape('Zhang')

結果: "%u5F20"

デコード:

unescape("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")

結果: "http://www.baidu.com?name=zhang@xiao@jie&order=1"

unescape("%u5F20")

結果: "Zhang"

2. encodeURI と decodeURI

URI 文字列を UTF-8 でエンコードします。 format はエスケープ文字列に変換されます。
encodeURI は 82 文字をエンコードしません: !、#、$、&、'、(,)、*、,,, -,.,/,:,;,=,?,@,_,~, 0 -9、a-z、A-Z

encodeURI() は、URL 全体をエンコードするために使用されます

エンコーディング:

encodeURI('http://www.baidu.com?name=zhang@xiao@jie&order=1')

結果: "http://www.baidu.com? name =zhang@xiao@jie&order=1"

デコード:

decodeURI("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")

結果: "http://www.baidu.com?name=zhang@xiao@jie&order=1"

3. encodeURIComponent と decodeURIComponent

encodeURI() との違いは、URL 全体をエンコードするのではなく、URL の個々のコンポーネントをエンコードするために使用されることです。 ######したがって、"; / ? : @ & = $、 #" の場合、encodeURI() でエンコードされていないシンボルは、すべて encodeURIComponent() でエンコードされます。具体的なエンコード方法については、どちらも同じです。 UTF-8 エンコード形式 String を使用して、URI 文字列をエスケープ形式に変換します。

encodeURIComponent() はパラメータを渡すために使用されます。特殊文字を含むパラメータは中断を引き起こす可能性があります。

結果: "http:// www.baidu.com?name=zhang@xiao@jie&order=1 "

デコード:

encodeURIComponent('http://www.baidu.com?name=zhang@xiao@jie&order=1')

結果:"http://www.baidu.com?name=zhang @xiao@jie&order=1"

概要:

escape() は、URL エンコードに直接使用することはできません。その実際の機能は、文字の Unicode エンコード値を返すことです。たとえば、「Spring Festival」の結果は %u6625%u8282 です。 () は正しくありません。" "エンコーディング

は主に中国語の文字エンコーディングに使用されており、実際には

encodeURI() は Javascript のエンコーディング関数で使用されます。

URL アドレス全体をエンコードしますが、特別な意味の記号「; / ? : @ & = $ , #」はエンコードしません。対応するデコード関数は次のとおりです: ##encodeURIComponent()

。特殊文字「; / ? : @ & = $, #」。対応するデコード関数は decodeURIComponent()

アンパサンドを付けて URL を渡したいので、 encodeURIComponent()
を使用します。

以上がJavaScript は URL のトランスコーディングとデコーディングをどのように実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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