Private
Public Access
1
0
Files
u-desk/internal/filesystem/encoding.go

25 lines
610 B
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)
}