AWS Kinesisのbase-64にエンコードしたい大きなJavascriptオブジェクトがあります。
let objStr = new Buffer(JSON.stringify(obj), 'ascii');
new Buffer(objStr, 'base64').toString('ascii') !== objStr
これをできるだけシンプルにしようとしています。
JSONをbase-64でエンコードし、元の値に安全にデコードするにはどうすればよいですか?
Buffer(str, [encoding])
コンストラクターを誤解した場合、encoding
はコンストラクターにstr
の作成に使用されたエンコーディング、またはコンストラクターがstr
のデコードに使用するエンコーディングを指示しますバイト配列に。
基本的に、Buffer
クラスはバイトストリームを表します。エンコードをコンテキストに変換するのは、文字列との間で変換を行う場合のみです。
代わりにbuffer.toString("base64")
を使用して、base-64でエンコードされたバッファーコンテンツを取得する必要があります。
let objJsonStr = JSON.stringify(obj);
let objJsonB64 = Buffer.from(objJsonStr).toString("base64");
文字列からBase-64まで
var obj = {a: 'a', b: 'b'};
var encoded = btoa(JSON.stringify(obj))
実際にデコードするには
var actual = JSON.parse(atob(encoded))
参照については、こちらをご覧ください。
https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding