golang 编码转换 gbk

ziyouzhiqiu · 2015-01-17 16:00:36 · 40799 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2015-01-17 16:00:36 的文章,其中的信息可能已经有所发展或是发生改变。

(一)golang 官方转换包

       go get golang.org/x/text/encoding
       https://godoc.org/golang.org/x/text

注:Go里面内建仅支持UTF8字符串编码,因此如果你用fmt.Printf之类的函数无法正常打印出字符串内容,而只能是一堆乱码!

导入package:

import (
    "bytes"
    "fmt"
    "golang.org/x/text/encoding/simplifiedchinese"
    "golang.org/x/text/transform"
    "io/ioutil"
)
 gbk转换:

    src:="编码转换内容内容"
    data, _ := ioutil.ReadAll(transform.NewReader(bytes.NewReader([]byte(src)), simplifiedchinese.GBK.NewEncoder()))
    fmt.Println(data) //byte
    fmt.Println(string(data))  //打印为乱码


(二)mahonia

导入package:

import (
    "fmt"
    "github.com/mahonia"
)
 gbk转换:

    src:="编码转换内容内容"
    enc := mahonia.NewEncoder("GBK")
    output := enc.ConvertString(src)
    fmt.Println(output)


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:ziyouzhiqiu

查看原文:golang 编码转换 gbk

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

40799 次点击  
加入收藏 微博
4 回复  |  直到 2019-10-11 10:19:43
anko
anko · #1 · 5年之前

请问下如何使用golang.org/x/text将gbk的中文转成utf8

sherlockgy
sherlockgy · #2 · 5年之前

@ anko

package main

import (
    "fmt"
    "io/ioutil"
    "os"

    "golang.org/x/text/transform"
    "golang.org/x/text/encoding/simplifiedchinese"
)

func main() {
    f, err := os.Open("C:\\Users\\sherl\\Desktop\\11.txt")

    if err != nil {
        panic(err)
    }

    // 编码转换
    utfReader := transform.NewReader(f, simplifiedchinese.GB18030.NewDecoder())

    all, err := ioutil.ReadAll(utfReader)

    if err != nil {
        panic(err)
    }

    fmt.Printf("%s\n", all)
}
sherlockgy
sherlockgy · #3 · 5年之前

1楼 @anko 看我回复

anko
anko · #4 · 5年之前
sherlockgysherlockgy #3 回复

1楼 @anko 看我回复

好的,感谢,我也已经摸索了一番这个库,不过过程还是很艰辛

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传