emolog

脳内メモです。

base64エンコードついて調べたのでメモ

外部APIを叩く時に画像をbase64エンコードしてpostする必要があったのでメモです。

base64 -i input.jpg -o output.txt
const fs = require('fs');
const imageFile = fs.readFileSync('/path/to/file');
const encodedImage = Buffer.from(imageFile).toString('base64');
import base64
def encode_image(image):
  image_content = image.read()
  return base64.b64encode(image_content)

base64エンコードについて

wikiさんによると

ja.wikipedia.org

64種類の印字可能な英数字のみを用いて それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である 元データを6ビットずつに分割。(6ビットに満たない分は0を追加して6ビットにする) 各6ビットの値を変換表を使って4文字ずつ変換。(4文字に満たない分は = 記号を追加して4文字にする)

このリンクでbase64の実装をしているので見てみる qiita.com

mozillaさんの developer.mozilla.org

あんまり細かい使用まで踏み込んでないので今度調べてみる