コマンド値は、値文字列に予約文字「=」、「&」、「%」が含まれないように、%xxエスケープシーケンスを使用してHTTPエンコードする必要があります。
それ以外の場合は、標準のHTTPエンコーディングルールが適用されます。 HTTPの仕様には、安全でない文字と、<return>
や<tab>
などの制御文字のエンコードが必要です。 文字のURLエンコードは、「%」記号に続き、その文字のISO-Latinコードポイントの2桁の16進表現(大文字と小文字を区別しない)が続きます。 安全でない文字とコードポイントは次のとおりです。
安全でない文字 | コードポイント(16進) | コードポイント(12月) |
---|---|---|
空白文字 |
20 |
32 |
<> |
3C |
60 |
> |
3E |
62 |
" |
22 |
34 |
# |
23 |
35 |
% |
25 |
37 |
{ |
7B |
123 |
} |
7D |
125 |
| |
7C |
124 |
\ |
5C |
92 |
^ |
5E |
94 |
~ |
7E |
126 |
[ |
5B |
91 |
] |
5D |
93 |
` |
60 |
96 |
予約文字もエンコードする必要があります。
予約文字 | コードポイント(16進) | コードポイント(12月) |
---|---|---|
$ |
24 |
36 |
& |
26 |
38 |
+ |
2B |
43 |
, |
2C |
44 |
/ |
2F |
47 |
。 |
3A |
58 |
; |
3B |
59 |
= |
3D |
61 |
? |
3F |
63 |
@ |
40 |
64 |
…&$text=rate&weight=85% 27#&…
難読化を適用しない場合、上記のリクエストフラグメントを次のようにエンコードする必要があります。
…&$text=rate%26weight%3D85%25%2027%23&…
難読化を適用する場合、エンコーディングは「=」、「&」および「%」文字の削除に制限できます。
…&$text=rate%26weight%3D85%25 27#&…