Golang字符串编码转换
目录
在实际开发中,我们常遇到需要处理不同编码的字符串数据——无论是处理遗留系统的GBK数据,还是对接第三方服务的特殊编码需求。Go语言中的字符串编码转换,完整通用代码如下,
package main
import (
"bytes"
"io"
"golang.org/x/text/encoding/simplifiedchinese"
"golang.org/x/text/transform"
)
// StrDecoder 对字符串进行重新编码
func StrDecoder(text string, encode string) (string, error) {
var reader io.Reader
switch strings.ToLower(encode) {
case "gb18030":
reader = transform.NewReader(bytes.NewReader([]byte(text)), simplifiedchinese.GB18030.NewDecoder())
case "gbk":
reader = transform.NewReader(bytes.NewReader([]byte(text)), simplifiedchinese.GBK.NewDecoder())
case "hzgb2312":
reader = transform.NewReader(bytes.NewReader([]byte(text)), simplifiedchinese.HZGB2312.NewDecoder())
default:
reader = bytes.NewReader([]byte(text))
}
d, err := io.ReadAll(reader)
if err != nil {
return "", err
}
return string(d), nil
}
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/go-string-encode-convert/
备用原文链接: https://blog.fiveyoboy.com/articles/go-string-encode-convert/