|
A priori, ma base est bien encodée en latin1, si
je fais un script d'export de celle-ci sur mon client SQL, il me génère
ceci:
CREATE DATABASE `XXX`
CHARACTER SET 'latin1' COLLATE
'latin1_swedish_ci';
Donc ma base doit être encodée en 'latin1', mon
defaultencoding python est setté par le sitecustomize.py sur 'latin-1'. J'ai
essayé aussi 'latin1' dans le sitecustomize, mais rien ne semble y
faire.
Je ne comprend pas ce qu'il se passe
Est-ce qu'une des libs python utilisées pourrait
transformer l'encodage à la volée ?
Cédric
Marfil Concepteur Réalisateur Intégrateur Confirmé Tél.
direct: 03.20.65.34.82 Mail: [EMAIL PROTECTED]
Capgemini 181
rue Jules Delcenserie 59700 Marcq en Baroeul
----- Original Message -----
Sent: Friday, October 06, 2006 11:59
AM
Subject: [CPS-users-fr] Re: Encodage de
caractères MySQL
Cedric Marfil a écrit : > Bonjour, > J'ai une base
de données MySQL, sur un serveur Gentoo, encodée en 'latin1'. >
J'utilise les librairies python suivantes pour m'y
connecter: > - MySQL-Python
1.2.1_p2 > - ZMySQLDA 2.0.8 > Quand je
fais une requête sur la base, il semblerait que les résultats > me
reviennent au format 'utf-8'. > J'ai créé un fichier sitecustomize.py
qui définit mon encodage par > défaut à 'latin-1'. > Rien n'y
fait, j'ai toujours mes résultats en 'utf-8'. > Ce qui m'étonne c'est de
ne pas retrouver de paramètre sur mon > connecteur ZMySQLDA qui me
permettrait de définir l'encodage désiré, > comme c'est le cas pour le
connecteur ZPsycoPgDA. > Avez vous une idée sur ce qui peut provoquer
l'envoi des résultats au > format 'utf-8' ?
Le fait que les
données stockées le soit en utf8 ? AMA MySQL ne s'amuse pas à transcoder
les chaines de caractères à la volée. Donc si on stocke de l'utf8 on
recupère de l'utf8. Il suffit juste de transcoder ces résultats en latin 9
(iso-8859-15) si on veut les afficher dans une page html générée par
CPS.
result_str.decode('utf-8').encode('iso-8859-15',
'replace')
Le flag 'replace' permet de remplacer les caractères utf-8
non existant en latin9 par un '?'. Dans CPSUtil on fournit en plus un
fallback supplémentaire chargé automatiquement dans CPS qui permet de
faire des conversions intelligentes pour les caractères windows
(cp1252):
result_str.decode('utf-8').encode('iso-8859-15',
'latin9_fallback')
Les détails dans : http://svn.nuxeo.org/trac/pub/browser/CPS3/products/CPSUtil/trunk/text.py
--
Olivier
_______________________________________________ cps-users-fr
Adresse de la liste : [email protected] Gestion
de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
|
|