def uvalues(a, encoding='utf-8', fallback='iso-8859-1'):
    """Return a list of decoded values from an iterator.

    If any of the values fail to decode, re-decode all values using the
    fallback.
    """

    try:
        return encoding, [s.decode(encoding) for s in a]

    except UnicodeError:
        return fallback, [s.decode(fallback) for s in a]