npm 包 strman.encode 使用教程

阅读时长 4 分钟读完

在前端开发中,我们经常需要对字符串进行编码和解码。其中,base64 编码是较为常见的编码方式,而要在 JavaScript 中实现 base64 编码并不是一件很简单的事情。而 strman.encode 包就是一个非常好用的 npm 包,可以方便地实现 base64 编码和其他常用编码方式的转换。

安装和使用

strman.encode 包可以通过 npm 安装:

然后在代码中导入它:

使用过程中我们需要注意,strman.encode 包提供了多种编码方案,我们需要根据具体需要选择合适的函数。

Base64 编码

URL 编码

HTML 实体编码

自定义编码表的编码

-- -------------------- ---- -------
----- --- - ------- ---------
----- ----- - -
  ---- --
  ---- --
  ---- --
  ---- --
  ---- --
  - -- --
  ---- --
  ---- --
  ---- --
  ---- -
--
----- ------ - ------------------------- -------
-------------------- -- ------------

深度内容

Base64 编码详解

Base64 编码是一种用于把任意二进制数据编码成 ASCII 字符串的方法,常用于在 URL、Cookie、网页中传输少量二进制数据,比如在读取本地图片并在网页中显示时,需要把图片数据编码成 Base64 字符串传输。Base64 编码的原理非常简单:将 3 个字节转换成 4 个字节,每个字节充当 6 个 bit 位,对应 Base64 字符表中的一个字符。

一个比较全的 Base64 字符表如下所示:

举个例子,对于字符串 Man,对应的 ASCII 码为 77 97 110,对应的二进制码为 01001101 01100001 01101110。每 3 个字符一组,我们将三个八位二进制数拼接在一起组成 24 位二进制数,再将这 24 位划分为四组,每 6 位一组。这样就得到 4 个数字,将这四个数字转换为对应的 Base64 字符。

经过拼接后得到:

再将这 24 位二进制数每 6 位一组,得到:

依次将这 4 个数字转换为对应的 Base64 字符,得到:

因此 Man 的 Base64 编码为 TWFu

Base64 编码的优劣

Base64 编码有一个明显的优点,就是不会出现乱码。由于 Base64 字符只包含 ASCII 可见字符,进行经过该编码的字符串在不支持二进制传输的地方,仍能正常传输。另外 Base64 编码也有一个很显然的劣点,就是编码后的字符串长度总是大于原来的字符串长度。

举个例子,对于字符串 hello,可知他的原始长度为 5。

可以看到,经过 Base64 编码后的字符串长度为 8,比原始长度的 1.6 倍还要长。针对这种情况,我们可以使用其他编码方案如 URL 编码或自定义编码表编码等方式实现编码。

结语

在前端开发过程中,虽然 JavaScript 已经内置了 base64 相关工具函数,但实现起来较为繁琐。而 strman.encode 包则让我们在使用 base64 编码等各种编码算法时变得十分简单。同时,该包还支持多种其他编码方案,开发者可以根据具体需求进行使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005570581e8991b448d3eb1

纠错
反馈