URLエンコーダ
URL と特殊文字をエンコードおよびデコードする
URLエンコーダの使い方
- 1エンコーディングが必要なURLやクエリ文字列を貼り付けます。
- 2パーセンテージ番号(URLエンコード)またはデコードのエンコード方法を選択します。
- 3コーディング結果を見ると、特殊な文字は%XXに安全に変換されます。
URLコード?
スペース%20; UTF-8バイトの中国/特殊文字%XXシリーズURL には、いくつかの文字(文字、数字、記号)のみが含まれる場合があります。 スペース、中国語、 = などの文字は、Web サイトで特別な意味を持つか、送信できません。 パーセンテージ番号を%と2つのヘキサデシマルにコードしなければなりません。
エンコーディングは、リンクが正しく解析され、転送され、切断または注入されるパラメータを回避することができます。 解読は、%XX が元の文字に復元されるリバースプロセスです。 フォーム送信、API呼び出し、およびスペルクエリパラメータは定期的に使用されます。
URLエンコーディング(パーセンテージコード)は、非ASCII文字と保持文字を%XXに変換し、16進数バイトです。 中国語は通常、UTF-8未満の3バイトなので、%E4%B8%AD(3%XX)は%E4%B8%Dとしてコードされます。** キーポイントは、コードが文字ではなくバイトであるということです** - 同じ文字は、UTF-8 と GBK の下で完全に異なる符号化され、初期の誤読処理の問題の根本である。 UTF-8では、最新のブラウザとサーバーが使用されます。
一番簡単なピットの2つ:** スペースコード%20 or +**? アプリケーション/x-www-form-urlencoded (form POST) のスペースは + で、URL パスとクエリ文字列 %20 です。 混合はサービスのエラーの解決につながります。 2 ** 複数エンコード **: 再び, %20 は %2520 になります (% % % ) 復元することができます前に 2 回デコードする必要があります。. メニュー コードが必要かどうかを判断するための基準は、文字が URL の特別な構文を持っているか、 ASCII でないと、コードをコードする必要があります。 メニュー
| キャラクター | エンコード | 意味する | エンコードするかどうか |
|---|---|---|---|
| スペース | %20 | スペース | はい(+も) |
| ! | %21 | エクスクラメーションマーク | お問い合わせ |
| " | %22 | 二重引用符 | はい。 |
| # | %23 | スニペット識別 | はい(URLカットオフ) |
| & | %26 | 変数 分離 | はい(パラメータを断ち切ることができます) |
| + | %2B | 追加する | はい。 |
| / | %2F | パス分離 | 場所によって。 |
| : | %3A | 契約の委任 | 場所によって。 |
| = | %3D | 主分離器 | エンコードする価値 |
| ? | %3F | クエリスタート | はい。 |
| メディア | %E4%B8%AD | 中国キャラクター | はい(UTF-8バイト) |
共通文字のURLエンコーディングコントラスト
よくある質問
スペース%20の理由
スペースは URL のセキュリティ文字ではなく、標準コードは %20 です(テーブルスペースのバリアントでも便利です)。
なぜ中国はコード化されますか?
URL は ASCII に基づいており、中国語は UTF-8 と %XXX をバイトし、受信者によってデコードしなければなりません。
コードは情報を失いますか?
ノーピー エンコーディングはリバーシブルです。 解読したら、元の文字列は完全に復元できます。
どの文字をエンコードできますか?
URL 仕様 (RFC 3986) で許可されている「非保存文字」: A-Z 文字、 a-z 文字、 0-9 文字、 - . 〜 これら 4 記号。 これらは、任意の時点でコードする必要はありません。 文字の残りの部分は理論的にコードされるべきですが、実際にはブラウザはそれらの一部を許容します。 セキュリティ上の理由から、この66文字だけ保存され、残りはコードされます。
encodeuriとencodeURIcomponentの違いは何ですか?
EnURI は、入力が完全な URL であり、エンコードしないと仮定します。 / ? & = 構文文字; encodeURI Component は、入力が URL (parameter 値) の不可欠な部分であり、エンコードします。 / & = すべて。 メニュー パラメータ値は、encodeURI Component** を使用して渡され、エラーを使用して、パラメータをカットまたは追加パラメーターに注入する必要があります。 例えば、値がa&b=1の場合、encodeURI spellを使うと2つのパラメータになり、encodeURI Componentを使うと正しいパラメータ値になります。
