Tools - Base64 编码工具
cToolsBase64 - Base64 编解码
概述
提供 Base64 字符串的编码和解码功能,支持标准 Base64 和 UTF-8 Base64,以及字节数组和文件操作。
方法
Encode
将字符串编码为 Base64 格式。
vb
Public Function Encode(ByVal Data As String) As String参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
Data | String | 要编码的原始字符串 |
返回值:
Base64 编码后的字符串。
示例:
vb
Dim Base64 As String
Base64 = VBMAN.ToolsBase64.Encode("Hello World")
Debug.Print Base64 ' 输出: SGVsbG8gV29ybGQ=Decode
将 Base64 字符串解码为原始字符串。
vb
Public Function Decode(ByVal Data As String) As String参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
Data | String | Base64 编码的字符串 |
返回值:
解码后的原始字符串。
示例:
vb
Dim Original As String
Original = VBMAN.ToolsBase64.Decode("SGVsbG8gV29ybGQ=")
Debug.Print Original ' 输出: Hello WorldUTF-8 Base64 编解码
Utf8Encode
将字符串按 UTF-8 编码后再进行 Base64 编码。
vb
Public Function Utf8Encode(ByVal Data As String) As String说明:
- 先将字符串转为 UTF-8 字节数组
- 再进行 Base64 编码
- 适合处理包含中文等非 ASCII 字符的字符串
示例:
vb
Dim Text As String
Text = "你好世界"
' 标准 Base64(可能有乱码)
Debug.Print VBMAN.ToolsBase64.Encode(Text)
' UTF-8 Base64(推荐用于中文)
Debug.Print VBMAN.ToolsBase64.Utf8Encode(Text) ' 输出: 5L2g5aW95LiW55WMUtf8Decode
将 UTF-8 Base64 字符串解码。
vb
Public Function Utf8Decode(ByVal Data As String) As String示例:
vb
Dim Encoded As String
Encoded = "5L2g5aW95LiW55WM"
Dim Decoded As String
Decoded = VBMAN.ToolsBase64.Utf8Decode(Encoded)
Debug.Print Decoded ' 输出: 你好世界字节数组操作
BytesToBase64
将字节数组编码为 Base64 字符串。
vb
Public Function BytesToBase64(ByRef Bytes() As Byte) As String参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
Bytes | Byte() | 要编码的字节数组 |
返回值:
Base64 编码后的字符串。
示例:
vb
Dim Bytes() As Byte
Bytes = StrConv("Hello", vbFromUnicode)
Dim Base64 As String
Base64 = VBMAN.ToolsBase64.BytesToBase64(Bytes)
Debug.Print Base64 ' 输出: SGVsbG8=Base64ToBytes
将 Base64 字符串解码为字节数组。
vb
Public Function Base64ToBytes(ByVal Data As String) As Byte()参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
Data | String | Base64 编码的字符串 |
返回值:
解码后的字节数组。
示例:
vb
Dim Base64 As String
Base64 = "SGVsbG8gV29ybGQ="
Dim Bytes() As Byte
Bytes = VBMAN.ToolsBase64.Base64ToBytes(Base64)
' 转回字符串
Dim Text As String
Text = StrConv(Bytes, vbUnicode)
Debug.Print Text ' 输出: Hello World文件操作
FileToBase64
将文件内容编码为 Base64 字符串。
vb
Public Function FileToBase64(ByVal Path As String, Optional ImageType As String) As String参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
Path | String | 文件路径 |
ImageType | String | 图片类型(如 "png", "jpg"),提供时返回 Data URI 格式 |
返回值:
- 普通 Base64 字符串,或
- Data URI 格式(如提供了 ImageType):
data:image/png;base64,xxxx
示例:
vb
' 普通 Base64
Dim Base64 As String
Base64 = VBMAN.ToolsBase64.FileToBase64("C:\\image.png")
' Data URI 格式(适合直接用于 HTML)
Dim DataUri As String
DataUri = VBMAN.ToolsBase64.FileToBase64("C:\\image.png", "png")
Debug.Print DataUri ' 输出: data:image/png;base64,iVBORw0KGgo...Base64ToFile
将 Base64 字符串解码并保存为文件。
vb
Public Function Base64ToFile(ByRef Data As String, Optional ByVal Path As String) As Byte()参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
Data | String | Base64 编码的字符串(支持 Data URI 格式) |
Path | String | 可选,保存路径 |
返回值:
解码后的字节数组。
示例:
vb
Dim Base64 As String
Base64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
' 仅获取字节数组
Dim Bytes() As Byte
Bytes = VBMAN.ToolsBase64.Base64ToFile(Base64)
' 保存到文件
VBMAN.ToolsBase64.Base64ToFile Base64, "C:\\output.png"
' 支持 Data URI 格式
Dim DataUri As String
DataUri = "data:image/png;base64," & Base64
VBMAN.ToolsBase64.Base64ToFile DataUri, "C:\\output.png"完整示例
vb
Private Sub TestBase64()
Dim Original As String
Dim Encoded As String
Dim Decoded As String
Original = "VBMAN 框架是一个强大的 VB6 开发框架"
' 标准编码
Encoded = VBMAN.ToolsBase64.Encode(Original)
Debug.Print "编码后: " & Encoded
' 标准解码
Decoded = VBMAN.ToolsBase64.Decode(Encoded)
Debug.Print "解码后: " & Decoded
' 验证
Debug.Print "是否一致: " & (Original = Decoded)
' UTF-8 编码(推荐用于中文)
Encoded = VBMAN.ToolsBase64.Utf8Encode(Original)
Debug.Print "UTF-8编码: " & Encoded
Decoded = VBMAN.ToolsBase64.Utf8Decode(Encoded)
Debug.Print "UTF-8解码: " & Decoded
End Sub
Private Sub TestFileBase64()
Dim Base64 As String
' 文件转 Base64
Base64 = VBMAN.ToolsBase64.FileToBase64("C:\\test.pdf")
Debug.Print "文件Base64长度: " & Len(Base64)
' Base64 转文件
VBMAN.ToolsBase64.Base64ToFile Base64, "C:\\test_copy.pdf"
' 图片转 Data URI
Dim DataUri As String
DataUri = VBMAN.ToolsBase64.FileToBase64("C:\\photo.jpg", "jpeg")
' 可用于 HTML
WebBrowser1.Document.Write "<img src='" & DataUri & "'>"
End Sub应用场景
| 场景 | 示例 |
|---|---|
| HTTP 认证 | Authorization: Basic & Base64Encode("user:pass") |
| 数据传输 | 对二进制数据进行文本编码传输 |
| URL 参数 | 对复杂数据进行编码后传递 |
| 配置文件 | 对敏感信息进行简单混淆存储 |
| 图片嵌入 | 将图片转为 Data URI 嵌入 HTML |
| 文件传输 | 通过 Base64 传输二进制文件 |