Problème d'encodage

Rédigé par Paulo Aucun commentaire
Classé dans : Python Mots clés : python, utf8, codage

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)
 
  1. 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'))

     
  2. ne pas oublier, en deuxieme ligne :
    #!/usr/bin/python
    # -*- coding: utf8

     
  3. 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)


     
 
 
 
 

Les commentaires sont fermés.