URLエンコーディング解説:パーセントエンコーディングとUTF-8

5 分で読了

URLエンコーディング(パーセントエンコーディング)は、特殊文字をインターネットで送信できる形式に変換します。スペースは%20に、アンパサンドは%26に、非ASCII文字はUTF-8バイト列としてエンコードされます。

URLにエンコーディングが必要な理由

URLには限られた文字セット(RFC 3986)しか使えません:英字、数字、いくつかの特殊文字(-._~)。それ以外はパーセントエンコードが必要です。

よくあるエンコーディング

文字エンコード後
スペース%20(クエリ文字列では+
&%26
=%3D
?%3F
#%23
/%2F
@%40

URLにおけるUnicode

非ASCII文字(caféなど)はまずUTF-8でエンコードされ、各バイトがパーセントエンコードされます:caf%C3%A9

JavaScriptでの使い方

encodeURIComponent("hello world & café")
// "hello%20world%20%26%20caf%C3%A9"

decodeURIComponent("hello%20world")
// "hello world"

クリーンなURLを生成

エンコーディングの問題を避けるにはクリーンなスラッグを使いましょう。URLスラッグジェネレーターがエンコーディング安全なスラッグを自動生成します。