Bonjour � tous,
Je produis un plugin pour QGIS, un logiciel de syst�me d'information g�ographique bas� sur Qt, dont les plugins sont �crits en Python.
Depuis que QGIS 1.9 est dot� de sa nouvelle API (ce mois-ci), les m�thodes ".toString()" ne fonctionnent plus.
J'utilise donc maintenant la m�thode ".toPlainText()" pour r�cup�rer les textes de deux QTextEdit (contr�les de texte sur plusieurs lignes), et les int�grer dans 2 champs d'une table PostGreSQL.
Extrait de mon code :
Lorsque je lance cette fonction, les textes saisi par l'utilisateur sont bien int�gr�s en base. Mais, dans les champs "zr_jours_chantiers" et "zr_sort_com", les caract�res accentu�s sont remplac�s par d'autres (exemple : � => é, � => �).
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 def sauverInfos(self): query_save = QtSql.QSqlQuery(self.db) query = """insert into bdtravaux.sortie (jours_chan, sortcom) values ('{zr_jours_chantier}', '{zr_sort_com}')""".format (zr_jours_chantier=self.ui.jours_chan.toPlainText().encode('UTF-8'),\ zr_sort_com=self.ui.comm.toPlainText().encode('UTF-8'))
J'imagine que cela doit �tre d� au fait que toPlainText() extrait de mon objet QTextEdit une cha�ne de caract�re cod�e en ASCII, que je transforme ensuite en UTF8 avec ".encode('UTF-8')"...
Entre temps, les caract�res sp�ciaux sont donc perdus.
Partagez-vous cette analyse?
Comment transformer mon QTextEdit en cha�ne de caract�res sans perdre les caract�res "sp�ciaux"?
Enfin, je me demandais pourquoi je n'avais pas ces probl�mes d'encodage quand j'utilisais les m�thode ".toString()"...
D'avance merci pour toute information sur ce sujet.
Vince
PS : je pr�cise que ma base postgresql est en UTF8, et que j'ai ajout�
# -*- coding: utf-8 -*-
au d�but de mon module Python.
Partager