API のドキュメントを読み漁っていると、Base64 Url Safe Encoding という記述を見ました。
LINE WORKS API - 顧客/取引先の連絡先の写真アップロード
何じゃこりゃ?('Д')
普通の Base64 Encode とどう違うの??
ってなわけで調べてみました。
Base64 Encode
まずは Base64 Encode について、改めて調べ直しました。
Base64
Base64 は、データを 64 種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式。
A–Z, a–z, 0–9 までの 62 文字と、2つの記号 +, / さらにパディング(余った部分を詰める)のための記号として = が用いられている。
Base64 URL Encode
URL に使用できる Base64 Encode のことを指します。
URL セーフな Base64 Encode とか Base64 URL Encode とか、先ほどの Base64 Url Safe Encoding とか、様々な呼び方があるようです。
URL や URI だと + や / などは別の意味を持ってしまうため、これらを置き換えるようです。
Base64 URL
まず、Base64 Encoding をしたあと、に各記号を置き換えるようです。
-
+を-に置換 -
/を_に置換
+ を - に、/ を _ に置き換える仕様みたいです。
パディングおよび = は省略します。
このように Base64 の中でも URL セーフなものを Base64 URL と区別します。
おわりに
ここまでお付き合いいただきありがとうございました。
調べてみると「なんだ、こんなことか」と思うのですが、そのままザラっと流しちゃうと知識として自分の頭に定着しないんですよ。
頭悪いんで!( ゚Д゚)
しっかり書いて、読み返す。
頑張って覚えて、先輩たちのような素敵エンジニアを目指したいと思います。
ではまた!(^^)/
参考にさせていただきましたm(_ _)m
ウィキペディア(Wikipedia)- Base64
RFC 4648 - The Base16, Base32, and Base64 Data Encodings
Base64エンコードとBase64URLエンコードについて
Base64 エンコーダー(画像をbase64エンコードするツール)