• [^] # Re: int vers string, entier vers chaîne

    Posté par (site web personnel) . En réponse au message (débutant) Comment corriger une erreur unicode bébête et classique ?. Évalué à 3. Dernière modification le 26 avril 2017 à 23:45.

    sûrement un script pensé pour Python 2 et exécuté avec Python 3.

    En Python 2 :
    "toto" est une string de bytes (et quand tu la parcours, tu obtiens "t", "o", "t", "o"), avec interdiction d'utiliser des accents
    u"toto" est une string de caractères unicode (et quand tu le parcours, tu obtiens u"t", u"o", u"t", u"o") , et tu peux utiliser des accents
    Tu peux aussi faire "to" + u"to" == u"toto", "to" + u"tô" == u"totô", mais pas "tô" + u"to" (UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128))

    En Python 3 :
    "toto" est une string de caractères unicode (et quand tu le parcours, tu obtiens "t", "o", "t", "o") , et tu peux utiliser des accents
    b"toto" est une string de bytes (et quand tu la parcours, tu obtiens les codes ASCII : 116, 111, 116, 111), avec interdiction d'utiliser des accents
    Tu ne peux pas mixer les deux.