音频 Base64 是一种将二进制音频数据(如 MP3、WAV 等格式)编码为 ASCII 字符串的方法。通过 Base64 编码,音频文件可以转换为纯文本形式,便于在文本协议(如 JSON、XML、HTML 或电子邮件)中传输或存储,而无需担心二进制数据损坏。
关键点:
-
Base64 原理
-
将每 3 字节(24 位)的二进制数据分割为 4 个 6 位的组,每组映射到 Base64 字符表(
A-Z, a-z, 0-9, +, /
)中的一个可打印字符。 -
若数据长度不足,会用
=
补位。
-
-
音频 Base64 的用途
-
网页嵌入:通过
data URI
直接内联音频(如<audio src="data:audio/mp3;base64,XXXX...">
)。 -
API 传输:JSON 不支持二进制,Base64 可将音频嵌入文本字段。
-
存储:某些数据库或文本配置中存储小型音频。
-
-
优缺点
-
优点:兼容文本协议,无需单独文件传输。
-
缺点:体积增大约 33%(编码后比原二进制大)。
-
示例:将字符串 "Man" 编码为 Base64
1. 原始数据(ASCII 二进制)
字符串 "Man"
的 ASCII 码和二进制表示如下:
字符 | ASCII 值 | 二进制(8 位) |
---|---|---|
M | 77 | 01001101 |
a | 97 | 01100001 |
n | 110 | 01101110 |
转换表
索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 |
---|---|---|---|---|---|---|---|
0 | A | 17 | R | 34 | i | 51 | z |
1 | B | 18 | S | 35 | j | 52 | 0 |
2 | C | 19 | T | 36 | k | 53 | 1 |
3 | D | 20 | U | 37 | l | 54 | 2 |
4 | E | 21 | V | 38 | m | 55 | 3 |
5 | F | 22 | W | 39 | n | 56 | 4 |
6 | G | 23 | X | 40 | o | 57 | 5 |
7 | H | 24 | Y | 41 | p | 58 | 6 |
8 | I | 25 | Z | 42 | q | 59 | 7 |
9 | J | 26 | a | 43 | r | 60 | 8 |
10 | K | 27 | b | 44 | s | 61 | 9 |
11 | L | 28 | c | 45 | t | 62 | + |
12 | M | 29 | d | 46 | u | 63 | / |
13 | N | 30 | e | 47 | v | ||
14 | O | 31 | f | 48 | w | ||
15 | P | 32 | g | 49 | x | ||
16 | Q | 33 | h | 50 | y |
拼接后的二进制流:
01001101 01100001 01101110
(共 24 位)
2. 分割为 6 位一组
Base64 按 6 位 一组分割,24 位分成 4 组:
复制
下载
010011 010110 000101 101110
对应十进制值:
-
010011
→ 19 -
010110
→ 22 -
000101
→ 5 -
101110
→ 46
3. 映射到 Base64 字符表
Base64 字符表:
复制
下载
0:A, 1:B, ..., 25:Z, 26:a, ..., 51:z, 52:0, ..., 61:9, 62:+, 63:/
根据十进制值映射:
-
19 →
T
-
22 →
W
-
5 →
F
-
46 →
u
结果:"TWFu"