Problème d'encodage
Rédigé par Paulo
Aucun commentaire
Classé dans : Python
Pour mettre fin à l'immonde et pourtant célèbre :
Traceback (most recent call last):
File "./eb85.py", line 43, in <module>
main()
File "./eb85.py", line 38, in main
print '{};{};{};{};{}'.format(c.get('class'), c.get('tps'), c.get('nom'), c.get('cat'), c.get('club').encode('ascii', 'ignore'))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 1: ordinal not in range(128)
-
dans le code, remplacer :
print '{};{};{};{};{}'.format(c.get('class'), c.get('tps'), c.get('nom'), c.get('cat'), c.get('club').encode('ascii', 'ignore'))
par :
print u'{};{};{};{}'.format(c.get('class'), c.get('tps'), c.get('nom'), c.get('cat'), c.get('club').encode('ascii', 'ignore'))
-
ne pas oublier, en deuxieme ligne :
#!/usr/bin/python # -*- coding: utf8
-
les classiques <u> comme "unicode"
# num = u'%s (%s coureurs)' %(num, participants) #encodage en utf8 ou ascii (avec sup des caractères "incodables") ma_variable.encode('utf-8', 'ignore') ma_variable.encode('ascii, 'ignore') #le bon vieux "format" print u'date: {} - Libellé: {}'.format(date, lib)