package filesystem import ( "bytes" "io" "unicode/utf8" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" ) // BytesToString 智能编码转换:UTF-8 直接返回,否则尝试 GBK → UTF-8 func BytesToString(data []byte) string { if utf8.Valid(data) { return string(data) } // 尝试 GBK 解码 reader := transform.NewReader(bytes.NewReader(data), simplifiedchinese.GBK.NewDecoder()) decoded, err := io.ReadAll(reader) if err != nil || !utf8.Valid(decoded) { return string(data) // 转换失败或结果无效,返回原始内容 } return string(decoded) }