Skip to content

Tools - Base64 编码工具

cToolsBase64 - Base64 编解码

概述

提供 Base64 字符串的编码和解码功能,支持标准 Base64 和 UTF-8 Base64,以及字节数组和文件操作。

方法

Encode

将字符串编码为 Base64 格式。

vb
Public Function Encode(ByVal Data As String) As String

参数:

参数名类型说明
DataString要编码的原始字符串

返回值:

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

参数:

参数名类型说明
DataStringBase64 编码的字符串

返回值:

解码后的原始字符串。

示例:

vb
Dim Original As String
Original = VBMAN.ToolsBase64.Decode("SGVsbG8gV29ybGQ=")
Debug.Print Original  ' 输出: Hello World

UTF-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)  ' 输出: 5L2g5aW95LiW55WM

Utf8Decode

将 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

参数:

参数名类型说明
BytesByte()要编码的字节数组

返回值:

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()

参数:

参数名类型说明
DataStringBase64 编码的字符串

返回值:

解码后的字节数组。

示例:

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

参数:

参数名类型说明
PathString文件路径
ImageTypeString图片类型(如 "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()

参数:

参数名类型说明
DataStringBase64 编码的字符串(支持 Data URI 格式)
PathString可选,保存路径

返回值:

解码后的字节数组。

示例:

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 传输二进制文件

VB6及其LOGO版权为微软公司所有