code: func (c Crawler) GetCharset(document *goquery.Document) string {
  	// manually-provided charset (from HTTP headers?) takes priority
  	if "" != c.Charset {
  		return c.Charset
  	}
  
  	// <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  	ct := c.GetContentType(document)
  	if "" != ct && strings.Contains(strings.ToLower(ct), "charset") {
  		return getCharsetFromContentType(ct)
  	}
  
  	// <meta charset="utf-8">
  	selection := document.Find("meta").EachWithBreak(func(i int, s *goquery.Selection) bool {
  		_, exists := s.Attr("charset")
  		return !exists
  	})
  
  	if selection != nil {
  		cs, _ := selection.Attr("charset")
  		return NormaliseCharset(cs)
  	}
  
  	return ""
  }
docs: // GetCharset returns a normalised charset string extracted from the meta tags