• encode
  • str
  • encoding
  • charset
  • bytes
  • decode
  • chardet
  • string

It is impossible to correctly detect the encoding of an arbitrary byte string 100% of the time.

Use the chardet package, or Beautiful Soup’s UnicodeDammit class to attempt to detect the charset using various heuristics.