In this tutorial, we will learn how to use base64.StdEncoding and base64.URLEncoding to encode and decode a string in Golang.
Golang provides built-in support for base64 encoding/decoding in the package encoding/base64.
The types of encoding available are:- StdEncoding: standard base64 encoding
- URLEncoding: alternate base64 encoding used in URLs and file names
- RawStdEncoding: standard, raw, unpadded base64 encoding
- RawURLEncoding: unpadded alternate base64 encoding for URLs and file names
In this tutorial, we will use StdEncoding and URLEncoding to encode and decode a string in Golang.
Golang Encoding and Decoding Example using base64.StdEncoding
Here is an example of encoding and then decoding the string, “source code examples” using base64 encoding with StdEncoding.
package main
import (
"encoding/base64"
"fmt"
)
func main() {
// String to encode
str := "Source code examples"
// base64.StdEncoding: Standard encoding with padding
// It requires a byte slice so we cast the string to []byte
encodedStr := base64.StdEncoding.EncodeToString([]byte(str))
fmt.Println("Encoded:", encodedStr)
// Decoding may return an error, in case the input is not well formed
decodedStr, err := base64.StdEncoding.DecodeString(encodedStr)
if err != nil {
panic("malformed input")
}
fmt.Println("Decoded:", string(decodedStr))
}
Output:
Encoded: U291cmNlIGNvZGUgZXhhbXBsZXM= Decoded: Source code examples
Golang Encode and Decode Example using base64.URLEncoding
Here is an example of encoding and then decoding the URL using base64 encoding with URLEncoding.
package main
import (
"encoding/base64"
"fmt"
)
func main() {
// String to encode
str := "https://www.sourcecodeexamples.net/p/golang-source-code-examples.html"
// It requires a byte slice so we cast the string to []byte
encodedStr := base64.URLEncoding.EncodeToString([]byte(str))
fmt.Println("Encoded:", encodedStr)
// Decoding may return an error, in case the input is not well formed
decodedStr, err := base64.URLEncoding.DecodeString(encodedStr )
if err != nil {
panic("malformed input")
}
fmt.Println("Decoded:", string(decodedStr))
}
Output:
Encoded: aHR0cHM6Ly93d3cuc291cmNlY29kZWV4YW1wbGVzLm5ldC9wL2dvbGFuZy1zb3VyY2UtY29kZS1leGFtcGxlcy5odG1s Decoded: https://www.sourcecodeexamples.net/p/golang-source-code-examples.html
Comments
Post a Comment
Leave Comment