JS を使用して URL をエンコードおよびデコードする 3 つの方法 JS はどのようにして URL にパラメーターや特殊記号を渡しますか?

なぜ URL エンコードなのか?

URL に %2F が含まれている場合はどうすればよいですか? JS は URL でパラメータや特殊記号をどのように渡しますか? URL リンクで %2F や %2B などの特殊な記号が頻繁に表示される問題を解決するにはどうすればよいですか?見てみましょう:

  • RFC 標準によれば、一部のシンボルは URI で直接渡すことができないため、規定の形式に従ってエンコードする必要があります。
  • エンコード形式: % と文字の ASCII コード、つまりパーセント記号 % の後に、対応する文字の ASCII (16 進数) コード値が続きます。例: スペースのエンコード値は「%20」です。

URL の特殊記号とエンコーディング。

 + URL 中+号表示空格 %2B
 空格 URL中的空格可以用+号或者编码 %20
 / 分隔目录和子目录 %2F
 ? 分隔实际的 URL 和参数 %3F
 % 指定特殊字符 %25
 # 表示书签 %23
 & URL 中指定的参数间的分隔符 %26
 = URL 中指定参数的值 %3D

URLをエンコードおよびデコードするにはどうすればよいですか?

1. エスケープとアンエスケープ (あまり一般的ではありません)

予防

特記事項: エスケープでエンコードされない文字は 69 文字あります: *、+、-、.、/、@、_、0 ~ 9、a ~ z、A ~ Z。

使い方の紹介
  • scape() は URL エンコードに直接使用することはできません。その実際の機能は、文字の Unicode エンコード値を返すことです。
  • scape() 関数は、文字列をエンコードするために js によって使用されます。
  • Unicode 文字セットを使用して、0 ~ 255 を除く指定された文字列をエンコードします。
  • すべてのスペース、句読点、特殊文字、およびその他の関連する非 ASCII 文字は、%xx 形式の文字エンコーディングに変換されます (xx は、文字セット テーブル内の文字エンコーディングの 16 進数と同じです)。
  • たとえば、スペース文字に対応するエンコーディングは %20 です。
使用例
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心";
escape(url)
'http%3A//localhost%3A8080/xiaojin%3Fstate%3D11%26name%3Dxiaojin%26other%3D%u5F00%u5FC3'

2. encodeURI と decodeURI (あまり一般的ではありません)

予防

==特記事項: encodeURI でエンコードされない文字は 82 文字あります:!、#、$、&、'、(,)、*、+、,,-,.,/,:,;,= 、?、@、_、~、0 ~ 9、a ~ z、A ~ Z ==

使い方の紹介

UTF-8 エンコード形式を使用して、URI 文字列をさまざまなエスケープ文字列に変換します。
encodeURI() は通常、URL 全体をエンコードするために使用されます

使用例
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心";
encodeURI(url)
'http://localhost:8080/xiaojin?state=11&name=xiaojin&other=%E5%BC%80%E5%BF%83'

3. encodeURIComponent と decodeURIComponent (共通に使用)

予防

==特記事項: 「; / ? : @ & = + $ , #」はすべてエンコードされるため、この方が使いやすいです。 ==

使い方の紹介
  • 通常、これをパラメータの受け渡しに使用します
  • URL 全体をエンコードするのではなく、URL のコンポーネントを個別にエンコードするために使用されます。
  • UTF-8 エンコード形式を使用してエスケープ形式の文字列に変換します。
  • 特殊文字を含むパラメータは中断を引き起こす可能性があります。
使用例
var url = "http://localhost:8080/xiaojin?state=11&name=xiaojin&other=开心";
encodeURIComponent(url)
'http%3A%2F%2Flocalhost%3A8080%2Fxiaojin%3Fstate%3D11%26name%3Dxiaojin%26other%3D%E5%BC%80%E5%BF%83'
今日はここまで〜
  • 友達、( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝまた明日~~
  • みなさんも毎日幸せに過ごしてくださいね

記事内の修正が必要な部分をぜひご指摘ください~
学習と双方にとって有益な協力に終わりはありません

ここに画像の説明を挿入します

より良い意見を提供するために通り過ぎる兄弟姉妹を歓迎します~~

おすすめ

転載: blog.csdn.net/tangdou369098655/article/details/133821323