Когда я выполняю один и тот же код на двух разных версиях Go (go1.10.8 darwin / amd64 и go1.6.1 linux / amd64) в более ранней версии, следующий код корректно кодирует строку, но в более поздней версии это кодирует строку в неправильный формат.
package main
import (
"bufio"
"bytes"
"encoding/base64"
"fmt"
"io/ioutil"
"os"
)
func main() {
var (
file *os.File
fileInfo os.FileInfo
err error
content []byte
)
filePath := "random.jpeg"
if file, err = os.Open(filePath); err == nil {
var buf bytes.Buffer
reader := bufio.NewReader(file)
bufWriter := bufio.NewWriter(&buf)
if content, err = ioutil.ReadAll(reader); err == nil {
_ = content
encoder := base64.NewEncoder(base64.StdEncoding, bufWriter)
encoder.Write(content)
// finalSlice, _ := ioutil.ReadAll(bufWriter)
// fmt.Println("and the final slcie becomes", finalSlice)
encodedString := string(buf.Bytes())
fmt.Println("and the final bytes becomes", encodedString)
_ = fileInfo
_ = encoder
} else {
fmt.Println("error cma in", err)
}
//} //else {
//fmt.Println("And here errror becimes", err)
//}
} else if err != nil {
fmt.Println("here the error become")
}
}
в чем может быть причина