RUV CalculatorURLエンコード・デコードhttps://calc.ruvlabs.com/ja/c/url-encoder

URLエンコード・デコード

パーセントエンコーディング

詳細設定

結果

詳しい内訳
長さ

これをURLに入れるには?

%EA%B3%84%EC%82%B0%EA%B8%B0%20%EA%B2%80%EC%83%89

初期値で計算した例です。上の値を変えるとご自身の数字になります。

パーセント符号化がしていること

URLに使える文字は限られています。それ以外はUTF-8のバイトに変換し、1バイトずつパーセント記号と16進数2桁で書きます。空白は%20、éは%C3%A9、日本語の1文字は3バイトなので%E6%97%A5のように9文字になります。

この道具は、アドレス全体を符号化する場合と、値ひとつを符号化する場合を区別します。アドレス全体ではスラッシュや疑問符のような構造の文字が残らなければなりませんが、値ひとつ、たとえば検索語では、同じ文字も符号化しなければ引数が途中で切れてしまいます。

復号は逆向きに動き、パーセントの三文字組をバイトに戻して UTF-8 として読みます。ログや参照元に記録されたアドレスから、元の検索語を取り出す用途が最も多いでしょう。

符号化する範囲を取り違える

値ひとつをアドレス全体のつもりで符号化すると、引数が途中で切れます。検索語にアンパサンドが含まれていてそのまま残ると、サーバーはそこから新しい引数が始まったと読みます。クエリの値には部品単位の符号化が要ります。

逆もまた失敗します。アドレス全体を部品単位で符号化するとスラッシュとコロンまで書き換えられ、リンクが開かなくなります。部品単位が正しいのは、出来上がった URL を別の URL の引数として運ぶときで、結果をそのままアドレス欄に入れる場合には誤りです。

すでに符号化された文字列をもう一度符号化すると、パーセント記号がそれぞれ %25 になり二重になります。出力に %25 がいくつも見えるなら、ほぼ必ずこれが起きています。元に戻すには復号を二回くり返す必要があります。

よくある質問

クエリ値の設定は何を変えますか。

オンならencodeURIComponent、オフならencodeURIを使います。違いは : / ? # [ ] @ のような区切り文字を変換するかどうかです。URL全体を符号化してスラッシュを残したいときはオフ、パラメータ1つの値を符号化して中の&が区切りと読まれないようにしたいときはオンにします。

ラテン文字以外のURLが長くなるのはなぜですか。

パーセントエンコードはUTF-8の1バイトを3文字にします。アクセント付き文字は2バイトなので6文字、日本語の1文字は3バイトなので9文字になります。

空白は+ですか%20ですか。

どちらも使われます。フォームの送信では+、一般のURLのパスでは%20です。このツールは%20を出します。サーバーが+も空白として受け取るかどうかは、その実装次第です。

計算はこのブラウザーの中で行われます。結果をそのまま使う前に、入力した値をもう一度確かめてください。