URLで使える文字には制限がある
URLは、もともと限られた範囲の文字(半角の英数字や一部の記号)で表すことを前提に作られています。そのため、日本語や空白、特定の記号はそのままでは安全に扱えません。
そこで、URLで直接扱えない文字を、扱える形に置き換える必要があります。この置き換えがURLエンコード(パーセントエンコーディング)です。化けて見える文字列は、実は正しく変換された姿です。
%付きの文字列のしくみ
URLエンコードでは、対象の文字を内部表現(バイト)に直し、それを % に続く二桁の十六進数で表します。たとえば半角スペースは %20 のように表されます。
日本語の一文字は複数のバイトで表されるため、%E3%81%82 のように % のかたまりが連なります。長い文字列に見えても、ルールに従って一文字ずつ置き換えられているだけです。
実務ではどこで関係する?
URLエンコードは言葉の意味だけ覚えても、HTML共有の判断にはつながりません。実務では「表示に関係する話か」「検索に関係する話か」「アクセス制限に関係する話か」を分けて考えると整理しやすくなります。
URLエンコードについて迷ったら、相手が安全に開けるか、検索に出してよいか、ブラウザや環境差で壊れないかを順番に確認します。用語理解は、その判断を早くするための道具として使います。手順が決まったら、HTML/ZIPをアップロードして共有URLを発行し、相手に確認してほしい観点と期限を添えて送ります。
- 表示の話: HTML/CSS/JS、パス、ブラウザ互換性を確認する
- 検索の話: noindex、canonical、sitemap、robots.txtの役割を分ける
- 制限の話: URL共有、パスワード、メール認証、会社ドメイン認証を混同しない
- 運用の話: 期限、差し替え、削除、共有メッセージまで決める
とくにパラメータで重要になる
URLエンコードが特に効いてくるのが、? 以降に続くクエリパラメータです。ここには検索語や設定値など、ユーザー由来の値が入ることが多く、日本語や記号が含まれがちです。
& や = といった記号は、パラメータの区切りとして特別な意味を持ちます。値の中にこれらをそのまま入れると区切りと誤解されるため、エンコードして本来の文字として渡す必要があります。エンコードを怠ると、値が途中で切れたり誤って解釈されたりします。
エンコードを正しく扱う手順
値をURLに組み込むときは、次の流れを意識すると安全です。手作業で組み立てる場面でも考え方は同じです。
- URLに入れたい値(検索語や名前など)を用意する
- その値に日本語・空白・記号が含まれるか確認する
- 含まれる場合は、その部分をURLエンコードして安全な形に変換する
- 変換した値を、パラメータの該当箇所に組み込む
- 受け取る側では、必要に応じて元の文字へ戻して(デコードして)扱う
化けているのではなく守られている
%付きの長い文字列は一見すると壊れたように見えますが、実際にはルールどおりに変換された安全な表現です。コピーした際にこの形になっていても、機能上の問題はありません。
むしろ、エンコードされていないURLに日本語や記号が直接含まれていると、環境によってはうまく開けないことがあります。化けて見える状態こそ、確実に届けるための正しい姿だと理解しておくとよいでしょう。
迷わず送れるシンプルなURL
共有する相手にURLを送るときは、できるだけシンプルで扱いやすい形が安心です。ギガサイト便で発行される 〇〇.giga-site.com 形式のURLは、カスタムスラッグ(URL末尾)も指定でき、英数字を基本とした分かりやすいアドレスになります。エンコードで長くなりがちなパラメータを意識せず、そのまま共有できます。
よくある質問
URLの%が並んだ文字列は壊れているのですか?
壊れていません。URLで直接扱えない日本語や記号を、安全に送れる形へ置き換えたものです。ルールに沿って変換された正しい表現で、機能上の問題はありません。
なぜ日本語はそのままURLに入れられないのですか?
URLはもともと半角英数字や一部の記号を前提に作られているためです。日本語などはそのままでは安全に扱えないので、URLエンコードで扱える形に置き換えます。
クエリパラメータでエンコードが特に重要なのはなぜですか?
& や = は区切りとして特別な意味を持つためです。値にこれらや日本語が含まれる場合、エンコードしないと値が途中で切れたり誤って解釈されたりすることがあります。
エンコードされたURLは元に戻せますか?
戻せます。受け取る側でデコード(復号)すると元の文字に戻ります。エンコードは可逆的な置き換えなので、変換しても情報が失われることはありません。
実務ではどこで関係する?はHTML共有で必ず理解しておく必要がありますか?
細かな仕様を暗記する必要はありません。ただし、検索に出るか、閲覧者を制限できるか、表示が崩れないかに関わる用語は、共有前の判断材料として押さえておくと安全です。