解決方法:
引入第三發轉碼包:
git clone https://github.com/axgle/mahonia.git
示例:
1 package main 2 import ( 3 "bufio" 4 "fmt" 5 "io" 6 "mahonia" //編碼轉換 7 "os" 8 ) 9 10 func main() { 11 var enc mahonia.Decoder 12 enc = mahonia.NewDecoder("gbk") 13 //讀取文件的案例 14 //讀取文件的內容並顯示在終端,使用os.Open, file.Close, bufio.NewReader(), reader.ReadString 15 file, err := os.Open("e:/test.txt") 16 if err != nil { 17 fmt.Println("open file err=", err) 18 } 19 20 //當函數退出時,要及時關閉file 21 defer file.Close() //防止內存泄露 22 //創建一個 *Reader , 是帶緩沖的, 默認緩沖區為4096個字節 23 reader := bufio.NewReader(file) 24 //循環讀取文件的內容 25 for { 26 str, err := reader.ReadString('\n') //讀到一個換行就結束 27 if err == io.EOF { //io.EOF表示文件的末尾 28 break 29 } 30 //輸出內容 31 fmt.Println("UTF-8 to GBK:", enc.ConvertString(str)) 32 } 33 fmt.Println("文件讀取結束") 34 }