特殊文字と区切り記号
クエリのURL値を処理する際には、特殊文字が正確に解釈されるようにそれらの文字をエンコードすることが不可欠です。ただし、URLで使用される重要な区切り記号はエンコードしないでください。
エンコードの具体的手順
-
特殊文字を特定します。URLコンポーネントに含まれているスペース、句読点、非ASCII文字を探します。
-
エンコーディングツールの使用:オンラインツールまたはお使いのプログラミング言語の組み込み関数を使用してこれらの文字をエンコードします。
次に、エンコードする文字とそのままにしておく文字を理解するのに役立つ簡単なガイドをご紹介します。
エンコードする文字
スペース、句読点、非ASCII文字を含む特殊文字。これらの文字を適切にエンコードしないと、URLに問題が生じる可能性があります。
次に、一般的な特殊文字とそれをエンコードした文字を示します。
名称 |
外観 |
エンコード値 |
---|---|---|
スペース |
|
%20 |
感嘆符 |
! |
%21 |
ハッシュ |
# |
%23 |
ドル記号 |
$ |
%24 |
アンパサンド |
& |
%26 |
プラス記号 |
+ |
%2B |
カンマ |
, |
%2C |
スラッシュ |
/ |
%2F |
コロン |
: |
%3A |
セミコロン |
; |
%3B |
等号 |
= |
%3D |
疑問符 |
? |
%3F |
アットマーク |
@ |
%40 |
エンコードしない文字
区切り記号はURL構造の不可欠な部分であるため、エンコードしないでください。
名称 |
例 |
---|---|
スキーマまたはプロトコル |
https:// |
ドメイン |
api.example |
パス区切り記号 |
/ |
クエリパラメーターの開始 |
? |
クエリパラメーター区切り記号 |
& |
例
正しくエンコードすると、特殊文字は区切り記号に影響を与えることなく、適切に表示されます。
-
元のURL:https://api.example.com/v1/users?name=John Doe&age=30&city=New York
-
エンコードされたURL:https://api.example.com/v1/users?name=John%20Doe&age=30&city=New%20York
この例では、John DoeとNew Yorkのスペースが%20としてエンコードされます。区切り記号(://、/、?、&、=)は変更されません。
区切り記号を不適切にエンコードすると、エラーが発生する可能性があります。
-
エンコードされたURL:https%3A%2F%2Fapi.example.com%2Fv1%2Fusers%3Fname%3Djohn%26age%3D30
この例では、https://プロトコルの:および/文字とクエリパラメーターの一部である?および&文字をエンコードすることで、URLが無効になっています。