Base64 编码一个 javascript 对象
Base64 encode a javascript object
我有大型 Javascript 对象,我想为 AWS Kinesis 编码为 base-64`
结果是:
let objStr = new Buffer(JSON.stringify(obj), 'ascii');
new Buffer(objStr, 'base64').toString('ascii') !== objStr
我尽量保持简单。
我如何进行 base-64 编码 JSON 并将其安全地解码回其原始值?
从字符串到 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
你误解了Buffer(str, [encoding])
构造函数,encoding
告诉构造函数使用什么编码来创建str
,或者构造函数应该使用什么编码来解码str
成一个字节数组。
基本上 Buffer
class 表示字节流,只有当您将其转换为 from/to 字符串时,编码才会进入上下文。
您应该改用 buffer.toString("base64")
来获取缓冲区内容的 base-64 编码。
let objJsonStr = JSON.stringify(obj);
let objJsonB64 = Buffer.from(objJsonStr).toString("base64");
将对象转换为 base64 时,出现 超出拉丁语范围的问题 和字符无效错误。
我用下面一行让它在我的项目中工作。
包括 base64
和 utf8
节点包并像这样访问它们:
var bytes = base64.encode(utf8.encode(JSON.stringify(getOverviewComments())));
我有大型 Javascript 对象,我想为 AWS Kinesis 编码为 base-64` 结果是:
let objStr = new Buffer(JSON.stringify(obj), 'ascii');
new Buffer(objStr, 'base64').toString('ascii') !== objStr
我尽量保持简单。
我如何进行 base-64 编码 JSON 并将其安全地解码回其原始值?
从字符串到 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
你误解了Buffer(str, [encoding])
构造函数,encoding
告诉构造函数使用什么编码来创建str
,或者构造函数应该使用什么编码来解码str
成一个字节数组。
基本上 Buffer
class 表示字节流,只有当您将其转换为 from/to 字符串时,编码才会进入上下文。
您应该改用 buffer.toString("base64")
来获取缓冲区内容的 base-64 编码。
let objJsonStr = JSON.stringify(obj);
let objJsonB64 = Buffer.from(objJsonStr).toString("base64");
将对象转换为 base64 时,出现 超出拉丁语范围的问题 和字符无效错误。
我用下面一行让它在我的项目中工作。
包括 base64
和 utf8
节点包并像这样访问它们:
var bytes = base64.encode(utf8.encode(JSON.stringify(getOverviewComments())));