golang.org/x/text/encoding is the Go team’s extended library for legacy encodings: Windows and ISO code pages, KOI8, Shift_JIS, EUC-JP, GBK, GB18030, Big5, EUC-KR and UTF-16/32 with BOM handling. Its decoders plug into io.Reader chains. Go itself only handles UTF-8.
chardet (github.com/saintfish/chardet) is a Go port of ICU’s charset detector: give it bytes, get the encoding, language and confidence. Use the name it returns with htmlindex.Get to get a decoder.
chardetgithub.com/saintfish/chardet detects the character encoding and language of text in Go, a port of ICU's detector. How to detect a file's encoding.
x/text/encodinggolang.org/x/text/encoding converts text between UTF-8 and legacy encodings (Windows-1252, UTF-16, Shift_JIS, GBK) in Go. How to read files in any encoding.