エンコードの仕組み
🔐 エンコードとURLエンコード
🔤 エンコードとは?
エンコードとは、情報(データ)を別の形式に変換する処理全般を指す。 コンピュータや通信で、データを扱いやすくしたり、安全に送るために使われる。
例:
| エンコード方式 | 目的 | 例 | 備考 |
|---|---|---|---|
| UTF-8 | 文字列 → バイナリ | 「あ」→ E3 81 82 | バイナリを16進数で表現 UTF-8は、一文字を3byte(24bit)で表現 |
| Base64 | バイナリ → テキスト | 画像やPDFの文字列表現 | Baseは進数の意味(64進数) 変換された文字列は見た目には意味を持たない |
| URLエンコード | 特殊文字 → %XXの16進表現 | 勉強中 → %E5%8B%89%E5%BC%B7%E4%B8%AD | |
| HTMLエンコード | HTMLタグや記号の無害化 | < → < | |
| エスケープ | 特殊文字をプログラムで安全に | \\\\n → \\\\\\\\n |
🌐 URLエンコードとは?
URLの構文にはルール(RFC 3986という国際ルール)がある。
&や?はクエリパラメータとして認識- 使える文字は ASCII(7ビット)文字だけ → ひらがな、漢字、絵文字は使えない
「URLエンコード」は、URLの中で使えない文字(日本語、スペース、記号など)やクエリパラメータとして認識されてしまう文字を、 %記法(パーセントエンコーディング)で表現するエンコード方法。
- 変換前:
https://example.com/tag/勉強中 - 変換後:
https://example.com/tag/%E5%8B%89%E5%BC%B7%E4%B8%AD
これにより、URLとして機能するようにしている。
🔄 デコードとは??
エンコードされた文字列を、元の文字列に戻す処理。
URLエンコード(コード化)されたものは、URLデコード(解読)することで元に戻すことができる。
const encoded = encodeURIComponent('勉強中');
console.log(encoded);
// => %E5%8B%89%E5%BC%B7%E4%B8%AD
const decoded = decodeURIComponent('%E5%8B%89%E5%BC%B7%E4%B8%AD');
console.log(decoded);
// => 勉強中JavaScript以上、エンコードについてでした。