快速编码解码Base64字符串,支持文本和文件转换
Base64是一种基于64个可打印字符来表示二进制数据的编码方式。这些字符包括大小写字母、数字和一些特殊符号。Base64广泛用于在需要通过纯文本渠道传输二进制数据的场景中,如电子邮件附件、URL参数等。Base64编码方案最初在RFC 4648和MIME规范(RFC 2045)中定义。
Base64编码过程可以分为以下步骤:
Base64字符集: A-Z, a-z, 0-9, +, /
填充字符: =
示例转换:
文本 "Man" 的ASCII码: 77 97 110
二进制表示: 01001101 01100001 01101110
重组为6位: 010011 010110 000101 101110
十进制值: 19 22 5 46
Base64结果: T W F u
简化的JavaScript实现代码:
// Base64 encoding implementation example (simplified)
function base64Encode(str) {
// Base64 character set
const base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
let result = '';
let i = 0;
// Process every 3 characters as a group
while (i < str.length) {
const char1 = str.charCodeAt(i++);
const char2 = i < str.length ? str.charCodeAt(i++) : 0;
const char3 = i < str.length ? str.charCodeAt(i++) : 0;
// Convert 3 8-bit bytes into 4 6-bit indices
const triplet = (char1 << 16) + (char2 << 8) + char3;
// Extract 4 6-bit values from the triplet
const index1 = (triplet >> 18) & 0x3F;
const index2 = (triplet >> 12) & 0x3F;
const index3 = (triplet >> 6) & 0x3F;
const index4 = triplet & 0x3F;
// Add padding based on the original data length
if (i - 3 > str.length) {
result += base64chars[index1] + base64chars[index2] + '==';
} else if (i - 2 > str.length) {
result += base64chars[index1] + base64chars[index2] + base64chars[index3] + '=';
} else {
result += base64chars[index1] + base64chars[index2] + base64chars[index3] + base64chars[index4];
}
}
return result;
}
我们的工具支持16进制格式输入和输出,对于处理程序代码中的二进制数据的开发者非常有用。
不同的字符集将文本编码为字节的方式不同。我们的工具支持多种字符集来处理各种文本编码:
编码方式 | 特点 | 主要用途 |
---|---|---|
Base64 | 使用64个ASCII字符表示二进制数据 | 电子邮件附件、二进制数据在文本中传输 |
URL编码 | 将特殊字符转换为%XX格式 | URL参数传递、表单提交 |
16进制编码 | 每个字节用两个16进制字符表示 | 哈希值表示、二进制数据可视化 |
关于Base64的更多官方信息,请参考以下资源: RFC 4648(Base64标准) | Wikipedia: Base64 | RFC 2045(MIME规范)