Tools - Base64 Encoding Utility
cToolsBase64 - Base64 Encoding and Decoding
Overview
Provides Base64 string encoding and decoding functionality, supporting standard Base64 and UTF-8 Base64, as well as byte array and file operations.
Methods
Encode
Encodes a string into Base64 format.
Public Function Encode(ByVal Data As String) As StringParameters:
| Parameter | Type | Description |
|---|---|---|
Data | String | The original string to encode |
Returns:
The Base64-encoded string.
Example:
Dim Base64 As String
Base64 = VBMAN.ToolsBase64.Encode("Hello World")
Debug.Print Base64 ' Output: SGVsbG8gV29ybGQ=Decode
Decodes a Base64 string back to the original string.
Public Function Decode(ByVal Data As String) As StringParameters:
| Parameter | Type | Description |
|---|---|---|
Data | String | The Base64-encoded string |
Returns:
The decoded original string.
Example:
Dim Original As String
Original = VBMAN.ToolsBase64.Decode("SGVsbG8gV29ybGQ=")
Debug.Print Original ' Output: Hello WorldUTF-8 Base64 Encoding and Decoding
Utf8Encode
Encodes a string using UTF-8 encoding before Base64 encoding.
Public Function Utf8Encode(ByVal Data As String) As StringDescription:
- First converts the string to UTF-8 byte array
- Then performs Base64 encoding
- Suitable for handling strings containing non-ASCII characters like Chinese
Example:
Dim Text As String
Text = "你好世界"
' Standard Base64 (may produce garbled characters)
Debug.Print VBMAN.ToolsBase64.Encode(Text)
' UTF-8 Base64 (recommended for Chinese text)
Debug.Print VBMAN.ToolsBase64.Utf8Encode(Text) ' Output: 5L2g5aW95LiW55WMUtf8Decode
Decodes a UTF-8 Base64 string.
Public Function Utf8Decode(ByVal Data As String) As StringExample:
Dim Encoded As String
Encoded = "5L2g5aW95LiW55WM"
Dim Decoded As String
Decoded = VBMAN.ToolsBase64.Utf8Decode(Encoded)
Debug.Print Decoded ' Output: 你好世界Byte Array Operations
BytesToBase64
Encodes a byte array into a Base64 string.
Public Function BytesToBase64(ByRef Bytes() As Byte) As StringParameters:
| Parameter | Type | Description |
|---|---|---|
Bytes | Byte() | The byte array to encode |
Returns:
The Base64-encoded string.
Example:
Dim Bytes() As Byte
Bytes = StrConv("Hello", vbFromUnicode)
Dim Base64 As String
Base64 = VBMAN.ToolsBase64.BytesToBase64(Bytes)
Debug.Print Base64 ' Output: SGVsbG8=Base64ToBytes
Decodes a Base64 string into a byte array.
Public Function Base64ToBytes(ByVal Data As String) As Byte()Parameters:
| Parameter | Type | Description |
|---|---|---|
Data | String | The Base64-encoded string |
Returns:
The decoded byte array.
Example:
Dim Base64 As String
Base64 = "SGVsbG8gV29ybGQ="
Dim Bytes() As Byte
Bytes = VBMAN.ToolsBase64.Base64ToBytes(Base64)
' Convert back to string
Dim Text As String
Text = StrConv(Bytes, vbUnicode)
Debug.Print Text ' Output: Hello WorldFile Operations
FileToBase64
Encodes file content into a Base64 string.
Public Function FileToBase64(ByVal Path As String, Optional ImageType As String) As StringParameters:
| Parameter | Type | Description |
|---|---|---|
Path | String | File path |
ImageType | String | Image type (e.g., "png", "jpg"), returns Data URI format when provided |
Returns:
- Normal Base64 string, or
- Data URI format (when ImageType is provided):
data:image/png;base64,xxxx
Example:
' Normal Base64
Dim Base64 As String
Base64 = VBMAN.ToolsBase64.FileToBase64("C:\\image.png")
' Data URI format (suitable for direct use in HTML)
Dim DataUri As String
DataUri = VBMAN.ToolsBase64.FileToBase64("C:\\image.png", "png")
Debug.Print DataUri ' Output: data:image/png;base64,iVBORw0KGgo...Base64ToFile
Decodes a Base64 string and saves it as a file.
Public Function Base64ToFile(ByRef Data As String, Optional ByVal Path As String) As Byte()Parameters:
| Parameter | Type | Description |
|---|---|---|
Data | String | Base64-encoded string (supports Data URI format) |
Path | String | Optional, save path |
Returns:
The decoded byte array.
Example:
Dim Base64 As String
Base64 = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
' Get byte array only
Dim Bytes() As Byte
Bytes = VBMAN.ToolsBase64.Base64ToFile(Base64)
' Save to file
VBMAN.ToolsBase64.Base64ToFile Base64, "C:\\output.png"
' Supports Data URI format
Dim DataUri As String
DataUri = "data:image/png;base64," & Base64
VBMAN.ToolsBase64.Base64ToFile DataUri, "C:\\output.png"Complete Examples
Private Sub TestBase64()
Dim Original As String
Dim Encoded As String
Dim Decoded As String
Original = "VBMAN Framework is a powerful VB6 development framework"
' Standard encoding
Encoded = VBMAN.ToolsBase64.Encode(Original)
Debug.Print "Encoded: " & Encoded
' Standard decoding
Decoded = VBMAN.ToolsBase64.Decode(Encoded)
Debug.Print "Decoded: " & Decoded
' Verification
Debug.Print "Match: " & (Original = Decoded)
' UTF-8 encoding (recommended for Chinese text)
Encoded = VBMAN.ToolsBase64.Utf8Encode(Original)
Debug.Print "UTF-8 Encoded: " & Encoded
Decoded = VBMAN.ToolsBase64.Utf8Decode(Encoded)
Debug.Print "UTF-8 Decoded: " & Decoded
End Sub
Private Sub TestFileBase64()
Dim Base64 As String
' File to Base64
Base64 = VBMAN.ToolsBase64.FileToBase64("C:\\test.pdf")
Debug.Print "File Base64 length: " & Len(Base64)
' Base64 to file
VBMAN.ToolsBase64.Base64ToFile Base64, "C:\\test_copy.pdf"
' Image to Data URI
Dim DataUri As String
DataUri = VBMAN.ToolsBase64.FileToBase64("C:\\photo.jpg", "jpeg")
' Can be used in HTML
WebBrowser1.Document.Write "<img src='" & DataUri & "'>"
End SubUse Cases
| Scenario | Example |
|---|---|
| HTTP Authentication | Authorization: Basic & Base64Encode("user:pass") |
| Data Transmission | Text encoding of binary data for transmission |
| URL Parameters | Encoding complex data for transmission |
| Configuration Files | Simple obfuscation for storing sensitive information |
| Image Embedding | Convert images to Data URI embedded in HTML |
| File Transmission | Transmitting binary files via Base64 |