(name, value)
return value
Helper function to format and quote a single header parameter using the
    strategy defined in RFC 2231.

    Particularly useful for header parameters which might contain
    non-ASCII values, like file names. This follows RFC 2388 Section 4.4.

    :param name:
        The name of the parameter, a string expected to be ASCII only.
    :param value:
        The value of the parameter, provided as ``bytes`` or `str``.
    :ret:
        An RFC-2231-formatted unicode string.
Helper function to format and quote a single header parameter using the
    strategy defined in RFC 2231.
Helper function to format and quote a single header parameter using the strategy defined in RFC 2231 .
def format_header_param_rfc2231(name, value):
    """
    Helper function to format and quote a single header parameter using the
    strategy defined in RFC 2231.

    Particularly useful for header parameters which might contain
    non-ASCII values, like file names. This follows RFC 2388 Section 4.4.

    :param name:
        The name of the parameter, a string expected to be ASCII only.
    :param value:
        The value of the parameter, provided as ``bytes`` or `str``.
    :ret:
        An RFC-2231-formatted unicode string.
    """
    if isinstance(value, six.binary_type):
        value = value.decode("utf-8")

    if not any(ch in value for ch in '"\\\r\n'):
        result = u'%s="%s"' % (name, value)
        try:
            result.encode('ascii')
        except (UnicodeEncodeError, UnicodeDecodeError):
            pass
        else:
            return result

    if not six.PY3:  # Python 2:
        value = value.encode('utf-8')

    # encode_rfc2231 accepts an encoded string and returns an ascii-encoded
    # string in Python 2 but accepts and returns unicode strings in Python 3
    value = email.utils.encode_rfc2231(value, 'utf-8')
    value = '%s*=%s' % (name, value)

    if not six.PY3:  # Python 2:
        value = value.decode('utf-8')

    return value
def format_header_param_rfc2231 ( name , value ) : if isinstance ( value , six . binary_type ) : value = value . decode ( "utf-8" ) if not any ( ch in value for ch in '"\\\r\n' ) : result = u'%s="%s"' % ( name , value ) try : result . encode ( 'ascii' ) except ( UnicodeEncodeError , UnicodeDecodeError ) : pass else : return result if not six . PY3 : # Python 2: value = value . encode ( 'utf-8' ) # encode_rfc2231 accepts an encoded string and returns an ascii-encoded # string in Python 2 but accepts and returns unicode strings in Python 3 value = email . utils . encode_rfc2231 ( value , 'utf-8' ) value = '%s*=%s' % ( name , value ) if not six . PY3 : # Python 2: value = value . decode ( 'utf-8' ) return value