JavaScript、C〓URLコード、デコードまとめ


JavaScript部分
encodeURI():変換されない文字:-(*)/?:@&=+,啣

  :
encodeURI(“https://www.jb51.net?a=-_.!~*'();/?:@&=+$,#”)
  :
“https://www.jb51.net?a=-_.!~*'();/?:@&=+$,#”
encodeURIComponent(デコード:decodeURIComponent():変換されない文字:C_.!*(()
たとえば:
encodeURIComponent("https://www.jb51.net?a=-_.!~()/?:@@=+,现
出力:
「http%3 A%2 F%2 Fwwww.jb 51.net%3 Fa% 3 D-_.!~'()%3 B%2 F%3 F%3 A%40%26%3 D%2 B%24%2 C%23」
違い:そうです。/?:@=+$これらの文字の処理。
もう一つはescape()ですが、ECMAScript v 3はこの方法の使用に反対です。理由の推測は、変換シーケンスによるもので、escape()の移行シーケンスは以下の通りである。
コードユニットが0 xFF以下の置換文字には、%xxフォーマットの2桁の変換シーケンスが使用されます。コードユニットが0 xFFより大きい置換文字には、%uxxxxフォーマットの4桁の変換シーケンスが使用されます。
具体的にはECMAScriptの仕様を研究してもいいです。本人の道が浅いので、深く研究しないです。unescape()も同様に使用を勧めません。
C〓の部分:
C〓の部分は混乱していて、urlencodeが多いだけではなく、httmlencodeもたくさんあります。ただし、urlを扱うときはurlの部分だけに注目してもいいです。htmlの部分は、xss攻撃を防ぐためにhttmlencode、httmldecodeが必要です。
ここではurlの使い方を説明します。
Server.UrlEnccode(復号:Server.UrlDecode):
Server.UrlEncodeは使用系yプリセットコードをパラメータとしてHttpUtility.UrlEnccodeコードを呼び出すので、システム全体がUTF 8フォーマットで符号化されるなら、この2つの方法は同じです。
HttpUtility.UrlEncode(デコード:HttpUtility.UrlDecode)
たとえば:
HttpUtility.UrlEnccode("https://www.jb51.net?a=-_.!~()/?:@@=+,现
出力:
http%3 a%2 f%2 fwwww.jb 51.net%3 fa%3 d-u.!%7 e*%27()%3 b%2 f%3 f%26%3 d%2 b%24%2 c%23
この方法はurlアドレスをエンコードします。ただし、この方法は16進数の%20ではなく、スペースを+記号として符号化しますので、この方法で符号化パラメータにスペースがあるとエラーが発生します。
Uri.Escape Uristring(デコード:対応が見つかりませんでした):中国語、スペースなどを変換します。
たとえば:
Uri.Escape Uristring("https://www.jb51.net?a=中国&123-(*)/?:@@=+$,嚔啱
出力:
https://www.jb51.net?a=%E4%B8%AD%E5%9B%BD&123%20%20%20-_.!~'()/?:@&=+$
ウェブサイトはエンコードされません。
Uri.Escape DataString:パラメータだけでなく、URLもエンコードします。
たとえば:
Uri.Escape Data String("https://www.jb51.net?a=中国&123-(*)/?:@@=+$,嚔啱
出力:http%3 A%2 F%2 Fwwww.jb 51.net%3 Fa% 3%E 4%B 8%AD% E 5%9 B%BD%26 123%20%20%_.%21~%2 A%2
7%28%29%3 B%2 F%3 F%3 A%40%26 3 D%2 B%24%2 C%23
だから、まとめ:
コードは必要ありません。/使用可能です。JavaScriptではencodeURIを使用します。そうでなければencodeURIComponentを使用します。C儏中はUri.Escape Uristringを使用します。そうでなければUri.EscapeDataStringを使用します。