code: def decode(self, binary, url, encoding=None, errors="strict"):
          
          if encoding is None:
              domain = util.get_domain(url)
              if domain in self.domain_encoding_table:
                  encoding = self.domain_encoding_table[domain]
                  html = binary.decode(encoding, errors=errors)
              else:
                  html, encoding, confidence = smart_decode(
                      binary, errors=errors)
                  # cache domain name and encoding
                  self.domain_encoding_table[domain] = encoding
          else:
              html = binary.decode(encoding, errors=errors)
  
          return html
docs: Decode binary to string.
  
          :param binary: binary content of a http request.
          :param url: endpoint of the request.
          :param encoding: manually specify the encoding.
          :param errors: errors handle method.
  
          :return: str