Problème avec les accents

Résolu
TyFFoul Messages postés 6 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 23 septembre 2006 - 24 août 2006 à 17:58
TyFFoul Messages postés 6 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 23 septembre 2006 - 23 sept. 2006 à 22:07
Bonjour à tous!

Je débute avec python et je suis bloqué depuis 2-3h...


Voila mon problème : J'ai programmé un script qui me permet de récuper
du texte sur des pages html et de le stocker dans une base de donnée
MySQL. Quand il n'y a pas d'accent dans le texte à récupérer, tout
marche nikel mais dès que je croise un accent, python me renvoi cette
erreur :

       Traceback (most recent call last):

          File "galax_test.py", line 67, in ?

             lien_db.query(requete)

       UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position 55: ordinal not in range(128)

Et voila le code en question:

import urllib

from BeautifulSoup import BeautifulSoup

import MySQLdb


lien=urllib.urlopen("http://www.toto.com")

page=lien.read()

soupe=BeautifulSoup(page)

nom_pl=soupe('th')[2].string


lien_db=MySQLdb.connect(host="localhost", user="titi", passwd="123", db="bdd")


requete="UPDATE table SET nompl='"+nom_pl[1:]+"' where planete='"+planete+"'"

lien_db.query(requete)

lien_db.commit()

lien_db.close()

Je vous dis à tous merci d'avance,

TyFFoul

2 réponses

cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
13 sept. 2006 à 18:29
Le problème ne serait pas lié au codage de caractères?
Mets en première ligne de ton fichier script:

# -*- coding: Latin-1 -*-

ou alors

# -*- coding: cp1252 -*-

peut être que ça résoudra?
3
TyFFoul Messages postés 6 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 23 septembre 2006
23 sept. 2006 à 22:07
ça marche avec
# -*- coding: cp1252 -*-
Mais l'interprète de commande DOS ne gère pas les accents donc je suis passé en interface graphique et le problème est résolu!

Merci ;)
3
Rejoignez-nous