Heim >Backend-Entwicklung >Golang >Was tun, wenn Golang verstümmelten Code einbettet?

Was tun, wenn Golang verstümmelten Code einbettet?

藏色散人
藏色散人Original
2020-04-08 10:43:383066Durchsuche

Was tun, wenn Golang verstümmelten Code einbettet?

Was soll ich tun, wenn Golang verstümmelte Zeichen einbettet? Problem mit verstümmeltem Golang-Chinesischcode

Während ich Golang lernte, Dateien zu lesen, stieß ich auf das Problem, dass Chinesisch verstümmelten Code anzeigte! Golang hat kein eigenes Codec-Paket, daher müssen Sie Pakete von Drittanbietern verwenden

Lösung:

Führen Sie das dritte Transkodierungspaket ein: git clone https:// github.com/axgle/mahonia.git

Gehen Sie als Nächstes direkt zum Code:

package main
import (
   "bufio"
   "fmt"
   "io"
   "mahonia"  //编码转换
   "os"
)
func main() {
   var enc mahonia.Decoder
   enc = mahonia.NewDecoder("gbk")
   //读取文件的案例
   //读取文件的内容并显示在终端,使用os.Open, file.Close, bufio.NewReader(), reader.ReadString
   file, err := os.Open("e:/test.txt")
   if err != nil {
      fmt.Println("open file err=", err)
   }
   //当函数退出时,要及时关闭file
   defer file.Close() //防止内存泄露
   //创建一个 *Reader , 是带缓冲的, 默认缓冲区为4096个字节
   reader := bufio.NewReader(file)
   //循环读取文件的内容
   for {
      str, err := reader.ReadString('\n') //读到一个换行就结束
      if err == io.EOF { //io.EOF表示文件的末尾
         break
      }
      //输出内容
      fmt.Println("UTF-8 to GBK:", enc.ConvertString(str))
   }
   fmt.Println("文件读取结束")
}

Für weitere Golang-Kenntnisse beachten Sie bitte die Spalte Golang-Tutorial der Chinesische PHP-Website.

Das obige ist der detaillierte Inhalt vonWas tun, wenn Golang verstümmelten Code einbettet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn