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スラッグジェネレーターがエンコーディング安全なスラッグを自動生成します。