You can use chardet to detect the encoding of a string, so one way to convert a list of them to unicode (in Python 2.x) would be:
import chardet
def unicodify(seq, min_confidence=0.5):
    result = []
    for text in seq:
        guess = chardet.detect(text)
        if guess["confidence"] < min_confidence:
            # chardet isn't confident enough in its guess, so:
            raise UnicodeDecodeError
        decoded = text.decode(guess["encoding"])
        result.append(decoded)
    return result
... which you'd use like this:
>>> unicodify(["¿qué?", "什么?", "what?"])
[u'\xbfqu\xe9?', u'\u4ec0\u4e48\uff1f', u'what?']
CAVEAT: Solutions like chardet should only be used as a last resort (for instance, when repairing a dataset that's corrupt because of past mistakes). It's far too fragile to be relied on in production code; instead, as @bames53 points out in the comments to this answer, you should fix the code that corrupted the data in the first place.