Exemple #1
0
def decode_header(header_str):
    """Takes an unicode string representing a munged header value
    and decodes it as a (possibly non-ASCII) readable value."""
    parts = []
    for v, enc in _email_decode_header(header_str):
        if isinstance(v, bytes):
            parts.append(v.decode(enc or "ascii"))
        else:
            parts.append(v)
    return " ".join(parts)
def decode_header(header_str):
    """Takes an unicode string representing a munged header value
    and decodes it as a (possibly non-ASCII) readable value."""
    parts = []
    for v, enc in _email_decode_header(header_str):
        if isinstance(v, bytes):
            parts.append(v.decode(enc or 'ascii'))
        else:
            parts.append(v)
    return ''.join(parts)
Exemple #3
0
def decode_header(header):
    """ Decode a MIME-encoded header value """
    l = []
    for s, charset in _email_decode_header(header):
        if charset:
            s = str(s, charset)
        elif isinstance(s, bytes):
            s = str(s, 'utf-8')
        l.append(s)
    return ''.join(l)
Exemple #4
0
def decode_parameter_value(value: AnyStr):
    """Decodes strings like '=?UTF-8?Q?' into human readable string

    :param value: bytes
    :return:
    """
    if not value:
        return ''

    if isinstance(value, (bytes, bytearray)):
        value = value.decode()

    res = []
    for part, enc in _email_decode_header(value):
        if isinstance(part, bytes):
            if not enc:
                enc = 'utf-8'
            res.append(part.decode(enc, errors='replace'))
        else:
            res.append(part)
    return ''.join(res)