我们可以在Go中编码String和url。 Go有带字节数组并转换为字符串编码的Encoder。
解码器获取编码后的值,并将其转换为原始字符串。
Go Base64示例
package main
import "fmt"
import b64 "encoding/base64"
func main() {
data := "Learnfk@12345!@#$%^&*()"
strEncode :=b64.StdEncoding.EncodeToString([]byte(data))
fmt.Println("value to be encode "+data)
fmt.Println("Encoden value: "+strEncode)
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">()</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Print</span><span class="pun">(</span><span class="str">"Value to be decode "</span><span class="pun">+</span><span class="pln">strEncode</span><span class="pun">)</span><span class="pln">
strDecode</span><span class="pun">,</span><span class="pln"> _ </span><span class="pun">:=</span><span class="pln"> b64</span><span class="pun">.</span><span class="typ">StdEncoding</span><span class="pun">.</span><span class="typ">DecodeString</span><span class="pun">(</span><span class="pln">strEncode</span><span class="pun">)</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"Decoded value "</span><span class="pun">+</span><span class="kwd">string</span><span class="pun">(</span><span class="pln"> strDecode</span><span class="pun">))</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">()</span><span class="pln">
url </span><span class="pun">:=</span><span class="pln"> </span><span class="str">"https://golang.org/ref/spec"</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"url to be encode "</span><span class="pun">+</span><span class="pln">url</span><span class="pun">)</span><span class="pln">
urlEncode </span><span class="pun">:=</span><span class="pln"> b64</span><span class="pun">.</span><span class="typ">URLEncoding</span><span class="pun">.</span><span class="typ">EncodeToString</span><span class="pun">([]</span><span class="kwd">byte</span><span class="pun">(</span><span class="pln">url</span><span class="pun">))</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"Encoded url "</span><span class="pun">+</span><span class="pln">urlEncode</span><span class="pun">)</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"value to be decode "</span><span class="pun">+</span><span class="pln">urlEncode</span><span class="pun">)</span><span class="pln">
strDecode2</span><span class="pun">,</span><span class="pln">_ </span><span class="pun">:=</span><span class="pln"> b64</span><span class="pun">.</span><span class="typ">URLEncoding</span><span class="pun">.</span><span class="typ">DecodeString</span><span class="pun">(</span><span class="pln">urlEncode</span><span class="pun">)</span><span class="pln">
fmt</span><span class="pun">.</span><span class="typ">Println</span><span class="pun">(</span><span class="str">"Decoded value "</span><span class="pun">+</span><span class="kwd">string</span><span class="pun">(</span><span class="pln">strDecode2</span><span class="pun">))</span><span class="pln">
}
输出:
value to be encode Learnfk@12345!@#$%^&*() Encoden value: SmF2YVRwb2ludEAxMjM0NSFAIyQlXiYqKCk=Value to be decode SmF2YVRwb2ludEAxMjM0NSFAIyQlXiYqKCk=Decoded value Ja-vaTpoint@12345!@#$%^&*()
url to be encode golang.org/ref/spec Encoded url aHR0cHM6Ly9nb2xhbmcub3JnL3JlZi9zcGVj value to be decode aHR0cHM6Ly9nb2xhbmcub3JnL3JlZi9zcGVj Decoded value golang.org/ref/spec
Process finished with exit code 0