皆様はURLを共有する時にこちら↓のようになったことはありませんか?
https://〇〇.com/%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8
こら〜〜〜〜😡😡😡
なんてスマートじゃない長さ😡😡😡
許せない😡😡😡
今回はどうしてこんな長さになってしまうのかについて簡単に説明していきます。
パーセントエンコーディング
先ほどのようなURLを見ると
「文字化けした」
と言われる方が稀にいますが、これは文字化けではなく**「パーセントエンコーディング」または「URLエンコーディング」**と呼ばれるものになります。
パーセントエンコーディングとは
パーセントエンコーディングは、URIの中に**「使用できな文字列」が含まれた際になんとかその文字列を決められた(使用できる)文字列だけで表現しようとする方法**のことです。
ちなみにURLとURIの違いについてはこちらの記事が最強にわかりやすいです↓
エンコード方法
実はURLでは日本語文字などの非アスキー文字や、空白文字などの記号はURIとしては使用できません。
そのため、以下のような手順で使用できる文字に変換(エンコード)します。
1.使用できない文字列を16進数の文字コードに分解
2.文字コードの各バイトを「%XX」という文字列への変換(XXは十六進数)
3.変換した文字列をURLに載せる
例えば、「にほん」という文字列を変換すると・・・
※UTF-8の文字コードに準拠
に → E381AB
ほ → E381BB
ん → E38293
となり、各バイトを%で区切ると・・・
に → %E3%81%AB
ほ → %E3%81%BB
ん → %E3%82%93
となるので、それらをつなげて
にほん → %E3%81%AB%E3%81%BB%E3%82%93
となります!
ということで、本記事の最初に掲載していたURLをデコードしてみると・・・
%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B8
→E3839B / E383BC / E383A0 / E3839A / E383BC / E382B8
→ホ / ー / ム / ペ / ー / ジ
となります。※文字コードの変化は以下サイトが便利です。
回避方法
URLは全部半角にする。
これに越したことはないです。
全角は敵だと思っていてください。