Base64エンコード
- 目的: バイナリデータをテキストデータに変換するために使用されます。これにより、バイナリデータをメールやURLなどのテキストベースのシステムで安全に送信できます。
- 方法: データを6ビットずつに分割し、それぞれを64種類の文字(A-Z, a-z, 0-9, +, /)にマッピングします。結果として、エンコードされたデータは通常のテキスト形式になります。
UTF-8エンコード
- 目的: テキストデータをバイト列に変換するために使用されます。UTF-8は、Unicode文字を可変長のバイト列で表現するエンコーディング方式です。
- 方法: 各文字を1〜4バイトのバイト列に変換します。これにより、ASCII文字は1バイト、その他の文字は2〜4バイトで表現されます。
Pythonでの違い
- Base64エンコード:
base64.b64encode
関数を使用して、バイナリデータをBase64エンコードします。例えば、b'hello'.encode('utf-8')
をBase64エンコードすると、b'aGVsbG8='
になります。
- UTF-8エンコード: 文字列をUTF-8バイト列に変換するために、
"xxxx".encode("utf-8")
を使用します。例えば、"hello".encode("utf-8")
はb'hello'
になります。
これらのエンコード方式は、異なる用途に応じて使い分けられます。Base64はバイナリデータをテキスト形式に変換するために、UTF-8はテキストデータをバイト列に変換するために使用されます。