トミケルの本音

日々の仕事や趣味で感じたことを綴るブログ

エンコードの仕組み

🔐 エンコードと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タグや記号の無害化<&lt;
エスケープ特殊文字をプログラムで安全に\\\\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

以上、エンコードについてでした。