les chaînes peuvent être :
* des bytestrings (chaînes d'octets); En python2, on ne préfixe pas (en python 3, on préfixe avec un b). Le contenu de la chaîne a un encodage indéfini (ce peut être de l'iso8859-1, utf8, utf16, du binaire sans représentation ascii, etc...). Seul le programmeur sait.. (parfois) * des chaines unicode. préfixées avec un "u". Dans ce cas l'"encodage" est connu de python. C'est une représentation interne en mémoire qui peut représenter tous les caractères connus. Python sait donc le réendocder car il sait d'où il part.
Par ailleurs on peut indiquer à python de ne pas interpréter les \n \t \r \u \x etc... qui sont une manière d'écrire des caractères non ascii.
* des chaînes brutes (raw) en particulier celles contenant des \ : pour des chemins, ou pour les expression régulières. Dans ce cas préfixer avec un "r" pour indiquer à pyhon de ne pas interprêter \t ou \n comme une tabulation ou un retour à la ligne par exemple
Dans votre cas, vous écrivez une chaine de caractères dont vous voulez que Python connaisse l'encodage. Le code source setup.py est stocké sur disque avec un encodage UTF8 (c'est un encodage qui permet aussi de représenter tous les caractères, contrairement aux iso8859-xx) . et la chaîne Apogée sera stockée en mémoire sous une forme unicode après avoir été interprétée par python depuis le code source en UTF8.
|create_desktop_shortcut(u'Apogée','c:\')|| ||remove_desktop_shortcut(u'Apogée')|
Le problèle se pose quand in ne sait pas vraiment l'encodage de ce que l'on reçoit... par exmple en sortie d'une ligne de commande Windows... La seule façon est de tenter plusieurs décodage en partant du plus probable...
Le 29/05/2017 à 16:42, Phil Markham a écrit :
bonjour,
lorsque j'essai de rajouter ou en lever un raccourci avec wapt contenant un accent j'ai ça :
'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128) : faulty string is ''Apog\xc3\xa9e.lnk''
la ligne en cause :
remove_desktop_shortcut('Apogée')
j'ai essayer avec un u un r devant .... ça ne fonctionne pas.
j'abdique ! 😓
OS : windows 10
WAPT mailing list WAPT@lists.tranquil.it http://lists.tranquil.it/listinfo/wapt