Problème encodage

Problème encodage - Python - Programmation

Marsh Posté le 11-10-2014 à 17:55:35    

Bonjour,
 
J'ai un script à la con qui prend en entrée un fichier .xml en UTF-8 et qui récupère du texte dedans.
Or, il me renvoie une erreur :

Citation :

UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 4074: character maps to <undefined>


 
Je n'ai pas réussi à trouver de solutions à ce problème après avoir cherché sur le net et testé différents trucs. :/
Pourriez vous m'aider à résoudre ça ?
 
Merci d'avance. :jap:


---------------
Feedback
Reply

Marsh Posté le 11-10-2014 à 17:55:35   

Reply

Marsh Posté le 11-10-2014 à 18:43:29    

Bonsoir,
tu lances le script avec python 2.x ou 3.x ? Tu peux donner la partie du script qui déclenche l'erreur ?


---------------
rule #1 : trust the python
Reply

Marsh Posté le 11-10-2014 à 18:58:59    

Merci pour ta réponse. ;)
Je lance avec Python 3.4. Tu penses qu'en passant sur une 2.x, je n'aurais pas le problème ?
Je suppose toutefois que c'est la partie ci-dessous qui déclenche le problème, c'est la seule pour laquelle je vais chercher du texte dans le fichier source.
Par contre, ce que je comprends pas, c'est qu'il crée bien les fichiers de sortie au début puis plante, mais ça plante toujours à la position 4074, même si je change l'ordre des lignes du fichier source.
 

Citation :

type_sms = ligne[ligne.find('type=')+6]
body_sms = ligne[ligne.find('body=')+6:ligne.find('toa=')-2]
date_sms = ligne[ligne.find('readable_date=')+15:ligne.find('contact_name=')-2]
contact_sms = ligne[ligne.find('contact_name=')+14:ligne.find('/>')-2]


 
Edit: Ah ben en effet, j'ai testé sur un autre PC avec Python 2.7 et ça marche. :D
Mais si t'as une idée pour le résoudre avec le 3.4, je suis pas contre pour autant ! ^^


Message édité par Raito33 le 11-10-2014 à 19:57:02

---------------
Feedback
Reply

Marsh Posté le 11-10-2014 à 20:58:52    

Je n'ai rien d'un expert... mais pour t'aider, il me faudrait la ligne où le fichier est ouvert, et la ligne où "ligne" est lu(e) :
 
Quelque chose comme :

Code :
  1. with open(...) as myfile:
  2.     ligne = myfile.read()


 
ou bien encore :

Code :
  1. myfile = open(...)


 
Si tu pouvais aussi nous donner le début du fichier lu, ça aiderait grandement.


---------------
rule #1 : trust the python
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed