UnicodeEncodeError

Fermé
develuc2 Messages postés 1 Date d'inscription dimanche 9 août 2015 Statut Membre Dernière intervention 9 août 2015 - 9 août 2015 à 15:12
lucrecife Messages postés 5 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 11 août 2015 - 11 août 2015 à 20:12
j'interroge une url et selon certaines pages, le code s'arrete et m'affiche:

UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 37: ordinal not in range(128)

comment faire pour "sauter" ce pb et afficher le reste de la page.
Pour l'instant, quoi que je fasse, il refuse de discuter et m'affiche l'erreur!

mon code:
page=1
ville="Bénin"

data=[""]
data[0]=["numero","tailleFic","tour","duree","frequence","prix","esc1","esc2","esc3","esc4","esc5","esc6","esc7","esc8","esc9","esc10","esc11","esc12","esc13","esc14","esc15","esc16","esc17","esc18","esc19","esc20","esc21","esc22","esc23","esc24"]
escales=[]



site='http://www.mer-et-voyages.info/voyages_en_cargo.php?p='+str(page)+'&ville='+ville

try:
with urllib.request.urlopen(site) as f:
h2=f.read().decode('Latin- 1')
except UnicodeDecodeError:
pass

...

1 réponse

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
10 août 2015 à 12:25
'lut, la source des pages du site précisent clairement
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Or tu décodes la page comme étant en Latin-1! Normal donc que ça échoue. Essaies avec
h2=f.read().decode('utf-8')
0
j'ai essayé, ça ne change rien:
que je fasse
h2=f.read().decode('utf-8')
ou
h2=f.read().decode('Latin-1')
ou
h2=f.read()
le pb est le même, je n'y comprends rien!
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
10 août 2015 à 16:47
Hum désolé je n'ai pas assez bien lu... Ceci dit ma remarque tient quand même.
L'erreur se plaint lors de l'encodage d'un texte, or tu n'en fais pas ici... Quel est le reste de ton script?
0
lucrecife Messages postés 5 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 11 août 2015 > ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021
Modifié par lucrecife le 11/08/2015 à 20:13
peu importe le reste, ça bloque à "read()"
J'interroge un site pour obtenir des infos.
Quand je fais un ctrlU de la page web ,il est bien écris que l'encodage est utf-8,,mais python bloque sur un caractère... et me loupe une page sur 5!
0