URLエンコードが必要になる場面と変換のやり方|日本語や記号でリンクが切れるときの直し方
日本語の入ったURLをコピーして、チャットに貼ったことはありませんか。貼ってみると、%E6%9D%B1%E4%BA%AC のような記号だらけの文字に化けていて、びっくりした人も多いはずです。
逆に、自分でURLを組み立てたら、リンクが途中で切れてしまった。そんな経験もあるかもしれません。どちらも、URLエンコードという仕組みが関わっています。
この記事では、URLエンコードがどんな場面で必要になるのかと、実際に変換するやり方をまとめます。仕組みを細かく覚えなくても大丈夫です。どういうときに使えばいいかが分かれば、十分に役立ちます。
URLには使える文字が決まっている
まず押さえておきたいのは、URLにはそのまま使える文字が限られているということです。半角の英数字と、ハイフンやドットなど一部の記号くらいしか、そのままでは入れられません。
では、日本語や空白はどうするのか。そこで使われるのがURLエンコードです。使えない文字を、決まったルールで英数字と % の組み合わせに置き換えます。パーセントを使うので、パーセントエンコーディングと呼ばれることもあります。
たとえば「東京」は、文字コードのUTF-8で表すと6つの数値になります。それを1つずつ % 付きで並べたのが %E6%9D%B1%E4%BA%AC です。ひらがなの「あ」なら %E3%81%82 になります。
見た目は暗号のようですが、中身は元の文字そのものです。ブラウザやサーバーは、これを読んで元の日本語に戻してくれます。
URLエンコードが必要になる場面
ふだんブラウザを使っているだけなら、ほとんど意識することはありません。ブラウザが裏で自動的に変換してくれるからです。自分で気にする必要が出てくるのは、主に次のような場面です。
URLを自分で組み立てるとき
検索ページへのリンクを作るときなどがこれに当たります。?q= のあとに検索したい言葉を入れる形のURLは、よく見かけますよね。
ここに日本語や空白をそのまま入れると、うまく動かないことがあります。メールやチャットのアプリによっては、空白のところでリンクが切れてしまうからです。あらかじめエンコードしておけば、こうした事故を防げます。
値の中に記号が入っているとき
気をつけたいのは、URLの中で特別な意味を持つ記号です。代表的なものを挙げておきます。
&は、値と値の区切り=は、名前と値のつなぎ目?は、ここから先が値だという合図#は、ページ内の位置を示す印
たとえば「A&B」という言葉で検索させたいとします。これをそのまま入れると、& のところで値が区切られてしまいます。受け取る側には「A」だけが届き、「B」は別の何かだと思われてしまうわけです。
こういうときは、値の部分だけをエンコードします。& は %26 に、# は %23 になります。こうすれば、区切りではなくただの文字として伝わります。
プログラムやツールの設定に貼るとき
Webサービスの連携設定や、プログラムの中にURLを書くときも出番があります。ブラウザのような自動変換が無いので、日本語のままだと正しく届かないことがあります。設定画面に「エンコード済みのURLを入れてください」と書かれていたら、この変換のことです。
%だらけのURLを読みたいとき
反対に、記号だらけのURLが何を指しているのか知りたい場面もあります。アクセスの記録を見返すときや、届いたリンクの行き先を確かめたいときです。元に戻すことをデコードと呼びます。読めない文字列のまま放っておくより、一度戻してみると中身がはっきりします。
変換のやり方

手で1文字ずつ置き換えるのは現実的ではありません。変換ツールを使うのがいちばん確実です。benri-kit の変換くんにあるURLエンコードのタブなら、文字を貼り付けるだけで変換できます。
- 変換くんのURLエンコードのタブを開く
- 変換したい文字列を入力欄に貼り付ける
- エンコードを実行する
- 出てきた結果をコピーして、使いたい場所に貼る
処理はすべてあなたのブラウザの中で行われます。入力した内容がサーバーへ送られることはありません。社内のURLや、人に見せたくない検索語を扱うときも安心です。
うまく変換するためのコツ
変換するのは必要な部分だけ
いちばんつまずきやすいのがここです。URL全体をまとめてエンコードすると、https:// の : や / まで変換されることがあります。そうなると、もうURLとして読めません。
おすすめは、日本語や記号が入っている値の部分だけを変換するやり方です。たとえば ?q= のあとの検索語だけを変換して、元のURLにつなげます。これならURLの骨組みは崩れません。
二重に変換しない
すでにエンコード済みの文字列を、もう一度変換してしまうのもよくある失敗です。% 自体が %25 に置き換わり、%2520 のような形になります。これでは元の文字に戻りません。
変換する前に、% と英数字が並んでいないか一度だけ確かめておくと安心です。すでに並んでいたら、それは変換済みの可能性が高いです。
空白の扱いに注意する
空白は、ふつう %20 に変換されます。ただ、Webのフォームから送られる値では、空白が + で表されることもあります。受け取る側がどちらを想定しているかで結果が変わるので、うまく動かないときはここを疑ってみてください。
変換したら一度開いてみる
作ったURLは、使う前にブラウザで一度開いてみましょう。思ったページが出れば成功です。人に送るリンクなら、このひと手間で「開けなかった」という連絡を防げます。
まとめ
URLエンコードは、URLに入れられない文字を、決まったルールで置き換える仕組みです。ふだんはブラウザが自動でやってくれますが、URLを自分で組み立てるときや、値に記号が入るときには自分で変換する必要があります。
覚えておきたいのは3つだけです。変換するのは値の部分だけにすること。二重に変換しないこと。作ったら一度開いて確かめること。これさえ押さえておけば、リンクが切れたり、検索語が途中で消えたりする失敗はぐっと減ります。