go語言工資水平是多少?這個其實完全取決于自己,從5K、10K、20K不等,你掌握的技術(shù)越精致,越廣泛,你的工資水平越高,所以先開啟你的學習之旅吧!
9.1字符編碼與解碼
9.1.1Base64
Base64就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法。Base64使用了26個小寫字母、26個大寫字母、10個數(shù)字以及兩個符號(例如“+”和“/”),用于在電子郵件這樣的基于文本的媒介中傳輸二進制數(shù)據(jù)。Base64通常用于編碼郵件中的附件。
Base64字符集如下所示。
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Base64的編碼過程如圖所示。

圖9.1?Base64
步驟說明如下。
l將每個字符轉(zhuǎn)成ASCII編碼(10進制)
l將10進制編碼轉(zhuǎn)成2進制編碼
l將2進制編碼按照6位一組進行平分
l將6位一組的2進制數(shù)高位補零,然后轉(zhuǎn)成10進制數(shù)
l將10進制數(shù)作為索引,從Base64編碼表中查找字符
l每3個字符的文本將編碼為4個字符長度(3*8=4*6)若文本為3個字符,則正好編碼為4個字符長度; 若文本為2個字符,則編碼為3個字符,由于不足4個字符,則在尾部用一個“=”補齊;若文本為1個字符,則編碼為2個字符,由于不足4個字符,則在尾部用兩個“=”補齊,如圖所示。

圖9.2?Base64編碼補齊
接下來通過一個案例演示Base64編碼解碼,如例所示。
例1-1?Base64
1?package main
2?import (
3? "encoding/base64"
4? "fmt"
5?)
6?func main() {
7? str := "心懷不懼,方能翱翔于天際"
8? cipherText := Base64EncodeString(str)
9? fmt.Println("base64?編碼后:",cipherText)
10? fmt.Println("base64?解碼后:",Base64DecodeString(cipherText))
11?}
12?func Base64EncodeString(str string) string {
13? return base64.StdEncoding.EncodeToString([]byte(str))
14?}
15?func Base64DecodeString(str string) string {
16? result, _ := base64.StdEncoding.DecodeString(str)
17? return string(result)
18?}
運行結(jié)果如圖所示。

圖9.3?運行結(jié)果