diff options
Diffstat (limited to 'chardet')
-rw-r--r-- | chardet/chardet.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/chardet/chardet.go b/chardet/chardet.go new file mode 100644 index 0000000..9fb68bc --- /dev/null +++ b/chardet/chardet.go @@ -0,0 +1,23 @@ +package chardet + +import ( + "bytes" + "io" + "golang.org/x/net/html/charset" +) + +func DetectAndDecode(r io.Reader) (*bytes.Reader, error) { + decoded, err := charset.NewReader(r, "text/html") + if err != nil { + return nil, err + } + + buf := new(bytes.Buffer) + _, err = io.Copy(buf, decoded) + if err != nil { + return nil, err + } + + return bytes.NewReader(buf.Bytes()), nil +} + |