UnicodeEncodeError: 'ascii' codec ne peut pas encoder des caractères en position 0-3: ordinal pas in range(128)

lorsque j'exécute mon code, j'obtiens cette erreur:

UserId = "{}".format(source[1]) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

Mon code est:

def view_menu(type, source, parameters):
    ADMINFILE = 'static/users.txt'
    fp = open(ADMINFILE, 'r')
    users = ast.literal_eval(fp.read())
    if not parameters:
        if not source[1] in users:
            UserId = "{}".format(source[1])
            users.append(UserId)
            write_file(ADMINFILE,str(users))
            fp.close()
            reply(type, source, u"test")
        else:
            reply(type, source, u"test")

register_command_handler(view_menu, 'test', ['info','muc','all'], 0, '')

S'il vous plaît comment je peux résoudre ce problème.

Merci

Il est intéressant de souligner ici que ce problème est exactement pourquoi Python 3.x existe. Êtes-vous sûr que vous voulez apprendre tous les maladroits choses nécessaires pour faire face avec le mélange de l'Unicode et non des chaînes Unicode dans une ancienne version de la langue à apprendre tout recommencer dans un an ou deux, plutôt que de simplement apprendre la plus facile et la plus récente chemin maintenant?

OriginalL'auteur yuyb0y | 2014-08-03