'Return the string value of the header.'

def __str__(self):

    self._normalize()
    uchunks = []
    lastcs = None
    lastspace = None
    for (string, charset) in self._chunks:
        nextcs = charset
        if (nextcs == _charset.UNKNOWN8BIT):
            original_bytes = string.encode('ascii', 'surrogateescape')
            string = original_bytes.decode('ascii', 'replace')
        if uchunks:
            hasspace = (string and self._nonctext(string[0]))
            if (lastcs not in (None, 'us-ascii')):
                if ((nextcs in (None, 'us-ascii')) and (not hasspace)):
                    uchunks.append(SPACE)
                    nextcs = None
            elif ((nextcs not in (None, 'us-ascii')) and (not lastspace)):
                uchunks.append(SPACE)
        lastspace = (string and self._nonctext(string[(-1)]))
        lastcs = nextcs
        uchunks.append(string)
    return EMPTYSTRING.join(uchunks)
