realbasic-nug.fr
[Top] [All Lists]

Re: REALbasic, MySQL et encodage de caractères

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: REALbasic, MySQL et encodage de caractères
From: Jacquot Jules <jacquot dot jules at tiscali dot fr>
Date: Wed, 30 May 2007 07:28:01 +0200
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <E439D3C9-25F5-45CA-927E-9429BBCB44F2 at wanadoo dot fr> <6947E9F3-A2B8-4F7F-8727-51E2949943A0 at wanadoo dot fr>

Le 29 05 2007 à 23:43, Jacques Chanliau a écrit :

Je ne crois pas que MySQL modifie l'encodage de la base.
Si on écrit dans une base MySQL à partir de Mac OS X en utilisant RB 2007 sans modifier l'encodage, l'écriture se fera par défaut en UTF8. Par contre, quand on va relire ces données, il faudra préciser à RB que l'on va lire de l'UTF8, puisqu'il semble qu'il attende de l'isoLatin par défaut. MySQL Query Browser lui va tenter de lire de l'IsoLatin si c'est l'encodage défini dans la base: il ne lira donc pas cette base correctement, jusqu'à ce que l'on modifie l'encodage de la base en UTF8. Il va donc récupérer cette information et lire correctement de l'UTF8. Il semble que RB ne puisse pas récupérer cette information (encodage défini pour la base), et considère toujours qu'il lit de l'isolatin, qui n'est pas du tout l'encodage par défaut comme le dit Jules. MySQL n'encode rien du tout, il reçoit les caractères qu'on lui envoie avec l'encodage d'origine.

Je n'utilise pas MySQL. Je suis donc mal placé pour porter un jugement.
Mais je ne comprends pas pourquoi RB attend de l'iSOLATIN par défaut venant de MySQL, puisque MySQL se contente d'enregistrer telle quelles les données entrantes ?

je crois que l'exposé du problème de Christian n'est pas très clair.

jules

"J'utilisais une base MySQL en IsoLatin" : Qu'est-ce que ça veut dire ? Que la base était écrite en IsoLatin, où que l'IsoLatin était défini comme encodage dans MySQL Query Browser ? "et devais sans cesse recoder les textes issus de cette base en UTF8" : Comment ? la seule façon de recoder le texte est d'utiliser un textconverter ou convertencoding. S cette phrase signifie l'utilisation de "defineencoding", il n'y a pas de modification de l'encodage, mais on signale simplement à RB que l'on va lire de l'UTF8. Dans l'état actuel du plugin MySQL de RB, il faut utiliser "defineencoding" à chaque fois que l'on lit une donnée qui n'est pas encodée en isolatin.

J'ai bien conscience que mes explications restent assez nébuleuses, mais si on comprend que le fait de changer la définition de l'encodage dans une base MySQL ne change pas cet encodage, et que, contrairement à ce qui semble logique, "defineencoding" ne modifie pas l'encodage d'un texte, on peut aborder ce problème d'encodage de façon plus sereine.

Jacques Chanliau


Où passeras-tu l'Eternité ?





<Prev in Thread] Current Thread [Next in Thread>