base-64 是一种编码方式,将二进制数据转换为 ASCII 字符串形式。在前端开发中,我们经常需要将图片或者其他二进制文件转换为 base-64 格式的字符串,以便于在浏览器中进行展示或传输。在 Node.js 中,可以通过 npm 包 base-64 实现这个功能。
安装 base-64
使用 npm 命令安装 base-64:
--- ------- ------- ------
使用 base-64
编码
----- ------ - ------------------- ----- ---- - ------ ------- ----- ----------- - -------------------- ------------------------- -- ----------------
解码
----- ------ - ------------------- ----- ----------- - ------------------- ----- ----------- - --------------------------- ------------------------- -- ----- -----
示例代码
以下是一个完整的示例,将图片转换为 base-64 格式的字符串,并在页面上显示:
--------- ----- ------ ------ -------------- ---------- ------- ------ ---- ---------- ------ ----------- ------- ------- ---------------------------------------------------------------------------- ------- ---------------------------------------------------------------------------------- ------- --------------------------------------------------------------------------------------------------------- ------- --------------------------------------------------------------------------------- -------- ------------ - ----------------------------- ---- ---------- --------- ------- ----- -------- --- ----- - ----- ---- - --------------------- ----- ------ - --- ------------- --------------------------- ------------- - -------- -- - ----- --------- - ---------------------------------- ----- ----------- - --- ----------------------------- --- ---- - - -- - - ----------------- ---- - -------------- - ------------------------ - ----- --------- - ----------------------------------- ----------------------- ------------------------ - ----------- -- - --- --- --------- ------ --------------- ----------- -------------- --------- ------- -------
深度解析
base-64 编码的原理很简单,将 3 个字节转换为 4 个 ASCII 字符,即每个 ASCII 字符表示 6 个二进制位。如果数据长度不是 3 的倍数,则在末尾补齐 0,直到长度为 3 的倍数。
例如,对于字符串 "hello world",先将其转换为二进制数据:
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- --------
将其划分为每 3 个字节一组:
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- --------
对于每一组,先将其转换为一个 24 位的整数,再将这个整数拆分为 4 个 6 位的整数,然后将每个 6 位的整数转换为对应的 ASCII 字符。如果最后一组不足 3 个字节,则在末尾补齐 0,并且用等号表示补齐了多少个字节。
例如,第一组(01101000 01100101 01101100
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/52515