Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1666 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Problème d'encodage lors d'un join.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'encodage lors d'un join.

n°1809786
Shadew
Posté le 08-11-2008 à 11:43:02  profilanswer
 

Bonjour,
 
J'ai un problème d'encodage lors de la transformation d'un tableau en un string grâce à un join() et je sais pas comment utiliser les encode() decode() pour régler ce problème. Voici le parcours du tableau:
1. J'ouvre un fichier:

Code :
  1. try:
  2.  fileHTML = open(path,'r+') #on ouvre le fichier
  3.  page = fileHTML.read().decode(fichierEncodage) #on décode ce que contient le fichier pour que le python sache comment interprété les caractères non ASCII
  4. except IOError, message: #erreur lors de l'ouverture
  5.  print >> sys.stderr, 'File could not be opened:', message
  6.  raw_input('Appuyez sur une touche...\n')
  7.  sys.exit(1)


2. Ici je recherche un élément dans le fichier grâce à une expression régulière stockée dans elt.expr_rech

Code :
  1. for elt in elt_rech: #pour chaque élémént à rechercher,
  2.  result=elt.expr_rech.findall(page) #on le recherche grâce à son expression régulière,
  3.  if result: #et si il existe,
  4.   elt.result = result #on le stock dans le champ résultat de la classe exprReg


3. J'ajoute ensuite une string (contenant mon résultat précédent) dans un tableau  

Code :
  1. s.append('\t\t<%s>%s</%s>\n'%(elt.obj_rech,clean_elt(elt.result[i]),elt.obj_rech)) #on ajoute le résultat


4.Après plusieurs ajout, je join le tableau

Code :
  1. result_str = u''.join(s)


 
Je n'avais jusqu'ici aucun problème jusqu'à ce que le symbole € apparaisse dans une des string du tableau. Depuis j'ai comme erreur:

Code :
  1. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 11: ordinal
  2. not in range(128)


 
J'ai essayé de jouer avec les encode() decode() mais je n'arrive as à bien les positionner pour faire le join.
 
J'arrive à afficher la variable page sans problème avec le code

Code :
  1. page.encode(fichierEncodage)

donc je suppose qu'il y a moyen d'afficher le symbole posant problème dans le tableau.
 
Merci pour votre aide!!


Message édité par Shadew le 08-11-2008 à 11:43:50
mood
Publicité
Posté le 08-11-2008 à 11:43:02  profilanswer
 

n°1809788
masklinn
í dag viðrar vel til loftárása
Posté le 08-11-2008 à 11:51:22  profilanswer
 

phase 3, utilises un unicode (préfixe le string dans append avec u) et vois ce que ça donne.

 

Accessoirement, tu pourrais aussi utiliser une des libs XML fournies dans la distro standard pour créer ta sortie, au lieu de fabrique du XML à la main comme ça.


Message édité par masklinn le 08-11-2008 à 11:52:28

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1809790
Shadew
Posté le 08-11-2008 à 12:00:24  profilanswer
 

Tu es mon dieu :')


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Problème d'encodage lors d'un join.

 

Sujets relatifs
Problème Formulairesprobleme identification client avec mot de passe
Probleme runserver DjangoProbleme de debugage Visual Studio 8 VB
Problème tout conDriver JDBC : Probleme lors de la récupération de caractere spéciaux
Agrandir une image au survol de la mignature: ProblèmeProbleme commandes
[Weblogic] Problème de lenteur en mode debugProbleme conflit de type
Plus de sujets relatifs à : Problème d'encodage lors d'un join.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR