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)
}
