ホームページ > 記事 > ウェブフロントエンド > JavaScript は URL のトランスコーディングとデコーディングをどのように実装しますか?
この記事の内容は、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')
概要:
escape() は、URL エンコードに直接使用することはできません。その実際の機能は、文字の Unicode エンコード値を返すことです。たとえば、「Spring Festival」の結果は %u6625%u8282 です。 () は正しくありません。" "エンコーディング
は主に中国語の文字エンコーディングに使用されており、実際には
encodeURI() は Javascript のエンコーディング関数で使用されます。
URL アドレス全体をエンコードしますが、特別な意味の記号「; / ? : @ & = $ , #」はエンコードしません。対応するデコード関数は次のとおりです: ##encodeURIComponent()。特殊文字「; / ? : @ & = $, #」。対応するデコード関数は decodeURIComponent()
アンパサンドを付けて URL を渡したいので、 encodeURIComponent()
を使用します。
以上がJavaScript は URL のトランスコーディングとデコーディングをどのように実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。