'Content of the response, in unicode.
If Response.encoding is None, encoding will be guessed using
``chardet``.
The encoding of the response content is determined based solely on HTTP
headers, following RFC 2616 to the letter. If you can take advantage of
non-HTTP knowledge to make a better guess at the encoding, you should
set ``r.encoding`` appropriately before accessing this property.'

@property
def text(self):

    content = None
    encoding = self.encoding
    if (not self.content):
        return str('')
    if (self.encoding is None):
        encoding = self.apparent_encoding
    try:
        content = str(self.content, encoding, errors='replace')
    except (LookupError, TypeError):
        content = str(self.content, errors='replace')
    return content
