ホームページ  >  記事  >  バックエンド開発  >  Golangの文字化けコードを解決する方法

Golangの文字化けコードを解決する方法

藏色散人
藏色散人オリジナル
2019-12-25 11:27:093205ブラウズ

Golangの文字化けコードを解決する方法

Golang で文字化けしたコードを解決するにはどうすればよいですか?

ファイルを読み取るために golang を学習する過程で、中国語の文字化けの問題に遭遇しました。 golang には独自のコーデック パッケージがないため、サードパーティのパッケージを使用する必要があります。

golang チュートリアル

解決策: を学習することをお勧めします。

3 番目のトランスコーディング パッケージを紹介します: git clone https://github.com/axgle/mahonia.git

次にコードに直接移動します:

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("文件读取结束")
}

以上がGolangの文字化けコードを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。