diff options
Diffstat (limited to 'modules/base/template.go')
-rw-r--r-- | modules/base/template.go | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/modules/base/template.go b/modules/base/template.go index 446d01dd..462269aa 100644 --- a/modules/base/template.go +++ b/modules/base/template.go @@ -47,18 +47,23 @@ func ShortSha(sha1 string) string { return sha1 } -func ToUtf8WithErr(content []byte) (error, string) { +func DetectEncoding(content []byte) (string, error) { detector := chardet.NewTextDetector() result, err := detector.DetectBest(content) + return result.Charset, err +} + +func ToUtf8WithErr(content []byte) (error, string) { + charset, err := DetectEncoding(content) if err != nil { return err, "" } - if result.Charset == "utf8" { + if charset == "utf8" { return nil, string(content) } - decoder := mahonia.NewDecoder(result.Charset) + decoder := mahonia.NewDecoder(charset) if decoder != nil { return nil, decoder.ConvertString(string(content)) } |