前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Node.js中的Base64编码和解码

Node.js中的Base64编码和解码

作者头像
ccf19881030
发布2020-10-28 11:42:22
16.3K0
发布2020-10-28 11:42:22
举报
文章被收录于专栏:ccf19881030的博客ccf19881030的博客

Node.js中的Base64编码和解码

本文翻译自Base64 Encoding and Decoding in Node.js

在上一篇文章中,我们研究了如何在JavaJavaScript中对Base64进行字符串编码和解码。今天,您将学习如何在Node.js应用程序中进行Base64编码和解码。

不幸的是,Node.js不支持用于Base64编码的标准JavaScript函数,例如atob()btoa()。这些方法是窗口对象的一部分,仅在浏览器中可用。

幸运的是,Node.js提供了一个称为Buffer的本地模块,可用于执行Base64编码和解码。缓冲区可用作全局对象,这意味着您无需在应用程序中显式包含此模块。

在内部,Buffer以字节序列的形式表示二进制数据。 Buffer对象提供了几种方法来执行不同的编码和解码转换。这包括往返于UTF-8,UCS2,Base64,ASCII,UTF-16甚至HEX编码方案。

让我们看下面的示例,这些示例解释了如何使用Buffer对象在Node.js应用程序中执行Base64编码和解码。

Base64 编码

要将字符串转换为Base64编码的字符串,我们首先需要使用Buffer.from()方法根据给定的字符串创建一个缓冲区。 此方法采用两个参数,即纯文本字符串和字符编码,并为给定的编码创建缓冲区或二进制数据数组。 如果未指定字符编码,则将使用UTF-8作为默认值。

这里有一个例子:

代码语言:javascript
复制
// plain-text string
const str = 'Base64 Encoding in Node.js';

// create a buffer
const buff = Buffer.from(str, 'utf-8');

// encode buffer as Base64
const base64 = buff.toString('base64');

// print Base64 string
console.log(base64);

// QmFzZTY0IEVuY29kaW5nIGluIE5vZGUuanM=

在上面的示例中,我们从字符串创建了一个缓冲区,并使用toString()方法将缓冲区编码为Base64字符串。 当您处理纯文本(UTF-8)字符串时,Buffer.from()中的第二个参数是可选的。

Base64解码

Base64解码过程与编码过程非常相似。 您需要做的就是通过使用base64作为Buffer.from()的第二个参数从Base64编码字符串中创建一个缓冲区,然后使用toString()方法将其解码为UTF-8字符串。

看起来是这样的:

代码语言:javascript
复制
// Base64 encoded string
const base64 = 'QmFzZTY0IEVuY29kaW5nIGluIE5vZGUuanM=';

// create a buffer
const buff = Buffer.from(base64, 'base64');

// decode buffer as UTF-8
const str = buff.toString('utf-8');

// print normal string
console.log(str);

// Base64 Encoding in Node.js

结论

这就是Node.js中Base64编码和解码的全部内容。 我们研究了如何使用本机Buffer模块在Node.js应用程序中执行Base64编码和解码。 Buffer对象不仅限于Base64转换。 您甚至可以使用它执行ASCII,HEX,UTF-16和UCS2编码和解码。

如果您想了解有关JavaScript中Base64转换的更多信息,请参阅本指南

喜欢这篇文章吗? 在TwitterLinkedIn上关注我。 您也可以订阅RSS Feed

您可能还喜欢…

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Node.js中的Base64编码和解码
  • Base64 编码
  • Base64解码
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档