宮水の日記

宮水の日記

主に書評や資格取得について記事を書いています。

base64.js【JSライブラリ1日1個】

JSライブラリを1日1つ紹介する

1日1つJSのライブラリを調べます。

① ライブラリに関するドキュメントを最初から最後まで読む
② 実際に使ってみる or 使い方を調べる
③ ライブラリを3行で説明する


本日は、base64.jsのドキュメントを読んで実際に業務で使っているところを調べました。
 

ドキュメント

今回読んだドキュメントはこちらです。
github.com

 

実際に使ってみる

base64.jsは導入するとエンコードとデコードができる、というライブラリのようです。

Base64.encode('dankogai'); // ZGFua29nYWk=
Base64.encode('小飼弾'); // 5bCP6aO85by+
Base64.encodeURI('小飼弾'); // 5bCP6aO85by-

Base64.decode('ZGFua29nYWk='); // dankogai
Base64.decode('5bCP6aO85by+'); // 小飼弾
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode('5bCP6aO85by-'); // 小飼弾

 

わからなかったところ

今回は実際に使うより、encodeとdecodeについてよく知らなかったので調べてみました。

エンコード

エンコード(英: encode)、符号化(ふごうか)とは、アナログ信号やデジタルデータに特定の方法で、後に元の(あるいは類似の)信号またはデータに戻せるような変換を加えることである。

デコード

エンコードした情報を元に戻すこと。

エンコード - Wikipedia


では、どうしてアプリ内でエンコードとデコードをする必要があるのでしょうか?

developer.mozilla.org

ざっと調べてみた感じ、絵文字などに対応したいからなのかな!と思いました☺️
あとで上司に答え合わせしてみたいと思います!

3行以内でまとめる

base64.jsを導入すると、

UTF-16に対応できる


フィードバック

> 昔、Basic認証で使われていた経緯がある。Basic認証は、ユーザ名とパスワードの組みをコロン ":" でつなぎ、Base64エンコードして送信する。
Basic認証 - Wikipedia

  • Basic認証で使うだけだったら、こっちで良さそう。

WindowOrWorkerGlobalScope.btoa() - Web APIs | MDN

  • 標準で搭載されているのに、再開発した作者のお気持ち

window.btoaがそのまま使えないブラウザがあった。URI SafeなBase64もサポートしたかった。という経緯があったそうです!
404 Blog Not Found:javascript - Yet Another Base64 transcoder


 

以上です!