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='になります。
  import base64
  encoded = base64.b64encode(b'hello')
  print(encoded)  # b'aGVsbG8='
  • UTF-8エンコード: 文字列をUTF-8バイト列に変換するために、"xxxx".encode("utf-8")を使用します。例えば、"hello".encode("utf-8")b'hello'になります。
  utf8_encoded = "hello".encode("utf-8")
  print(utf8_encoded)  # b'hello'

これらのエンコード方式は、異なる用途に応じて使い分けられます。Base64はバイナリデータをテキスト形式に変換するために、UTF-8はテキストデータをバイト列に変換するために使用されます。