Rails, MySQL et OpenOffice

Bonjour à tous,

je souhaiterais soumettre à votre expertise mon problème suivant :

J’ai au taf des personnes travaillant sous OpenOffice qui souhaitent
faire du publipostage à partir d’une base partagée. Jusqu’à présent
tout cela se faisait via le partage d’un fichier ods répliqué entre
tous les postes via JFileSync. Les problèmes de conflit entre
fichiers modifiés ont commencé à se faire sentir quand il à fallut
faire de grosses MAJ sur le fichiers d’adresses.
J’ai donc proposer de faire le publipostage à partir d’une base de
donnée (MySQL - OOo ne supportant par PostgreSQL - malheureusement).
Un petit coup de scaffold plus tard et j’avais une interface via
Rails permettant à tout un chacun de faire la mise à jour de la base.
Jusque là, que du bonheur me direz vous. En effet. Malheureusement le
problème vient quand on interroge la base via OOo (JDBC MySQL) car on
se retrouve alors avec un encodage qui faire rire jaune la Poste !
Cela apparaît bien via l’appli Rails, mais c’est merdique une fois
dans OOo.
Ma question est donc la suivante : ou faire la modification ?
- Paramètre à passer au driver JDBC
- Modification de l’encodage dans la base ?
- Modification de l’appli ?

Merci pour les pistes que vous pourriez me donner.

Greg_______________________________________________
Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Grégoire Lejeune a écrit :

Malheureusement le problème vient quand on interroge la base via OOo
(JDBC MySQL) car on se retrouve alors avec un encodage qui faire rire
jaune la Poste ! Cela apparaît bien via l’appli Rails, mais c’est
merdique une fois dans OOo.
Ma question est donc la suivante : ou faire la modification ?
- Paramètre à passer au driver JDBC
- Modification de l’encodage dans la base ?
- Modification de l’appli ?
Salut Grégoire,
J’ai plusieurs pistes : tu auras à t’assurer que chaque application
travaille bien avec le même charset & encoding

Par défaut, rails envoie des pages en utf-8 (donc les affichages et les
http post) mais omet de les enregistrer en utf-8 dans mysql. ça se
corrige facilement en ajoutant le paramètre optionnel :

encoding: utf8

dans le config/database.yml, pour ton serveur actif.

C’est il me semble, une incohérence de la config par défaut de Rails qui
met de l’utf-8 partout sauf dans la connexion mysql.

Une fois les données proprements enregistrées en utf-8 (si c’est le
charset qui te convient), tu devras t’assurer que OOo et le driver JDBC
utilisent l’utf-8 .
Pour info, la commande sql qui configure la connexion en utf-8 est :
“set names utf8;”

Une autre source de confusion est la différence entre “utf-8” par ci et
“utf8” par
là.
J’espère que ça t’aideras :slight_smile:


François Simond

| Consultant et Developpeur Indépendant
| Référencement, Communication & Standards Web, Linux
| Photographie
| Tel : (mobile) 06 99 02 56 12 (fixe) 0870 22 66 56

Merci beaucoup pour ces pistes. Je vais essayer ça et je vous
informerai du résultat.

Greg

Le 8 juin 06 à 22:58, François SIMOND a écrit :

Bonjour Grégoire,
J’ai eu récemment un problème d’encoding et utf-8 ne répondait hélas pas
à tous mes problèmes d’accents. (notamment avec de l’AJAX et de
l’édition de pdf)
J’ai donc basculé mon charset dans application.rb en ISO-8859-1 et
supprimé encoding dans la connexion à la database (database.yml).
Et j’ai utilisé iconv pour basculer l’encodage de toutes mon appli,
comme expliqué ici :
http://blog.gmane.org/gmane.comp.lang.ruby.rails.french/month=20060101

J’espère que ça t’aidera.
Bonne journée.

Pierre M…
pmt tecsas.fr

Bonjour,

en fait j’ai agit comme l’a proposé François, à savoir en ajoutant

encoding: utf8

dans le database.yml et en modifiant l’URL Datasource de la façon
suivante :

jdbc:mysql://<mon_host>/<ma_base>?user=&password=&characterEncoding=UTF-8

et ca fonctionne parfaitement.

Merci à tous pour votre aide !

Greg

Le 09/06/06, Pierre M. [email protected] a écrit :