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 }