URLエンコード・デコード
日本語をふくむURLを %E3%81%82 のような形に変換したり、元の日本語に戻したりします。
URLエンコードとは
URLには、半角の英数字といくつかの記号しか使えません。日本語やスペースなどは、文字をUTF-8のバイトに分けて「%」と16進数2桁で表します。これをURLエンコード(パーセントエンコーディング)といいます。たとえば「あ」は %E3%81%82 になります。
2種類のエンコード
- エンコード(すべて):「/」「?」「&」「=」などの記号もふくめて変換します(JavaScriptの encodeURIComponent)。検索ワードなど、URLの一部に入れる文字列に使います。
- エンコード(URLの記号は残す):URLとして意味のある記号はそのままにして、日本語などだけを変換します(encodeURI)。URL全体を変換するときに使います。
デコードがうまくいかないとき
古いサイトでは、日本語をShift_JISやEUC-JPという別の文字コードでエンコードしていることがあります。このツールはUTF-8で読むので、その場合は正しく戻せません。「+」はフォームの送信ではスペースを表すため、デコードのときにスペースに戻しています。