golang 字符编码转换 | Golang | 张文兵博客
package main
import (
"fmt"
"unicode/utf8"
"github.com/axgle/mahonia"
)
func main() {
str := "\xCE\xD2\xB0\xD6\xB3\xAC\xBF\xE1_\xCA\xB5\xC1\xA6\xB3\xE8\xC5\xAE_\xC3\xBB\xC7\xAE\xD2\xB2\xD2\xAA\xB8\xF8\xC5\xAE\xB6\xF9\xC2\xF2\xB7\xA2\xBC\xD0"
data := ConvertToString(str, "gbk", "utf-8")
fmt.Println(data)
}
func ConvertToString(src string, srcCode string, tagCode string) string {
if utf8.Valid([]byte(src)) { //判断src是否本身就是utf8
return src
}
srcCoder := mahonia.NewDecoder(srcCode)
srcResult := srcCoder.ConvertString(src)
tagCoder := mahonia.NewDecoder(tagCode)
_, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
result := string(cdata)
return result
}