Autant pour moi, je me suis mal exprimé.
Par textinput, j'entendais EditField (habitude d'autres langages...).
J'ai un champ EditField dont je souhaite récupérer la valeur afin de
faire une requête SQL sur une base de données MySQL.
Cela se passe très bien, tant qu'il n'y a pas d'accent.
Ce problème vient il me semble du fait que RB est en UTF8 et ma base
en ISOLatin1.
En Java ou PHP, je sais facilement changer de format. Mais en RB, je
n'y parviens pas. Cela doit être pourtant très simple...
En gros, avant de faire ma requête, j'aimerai appliquer une méthode à
la valeur du champ afin de l'adapter à ma table MySQL qui est en
ISOLatin1.
Merci encore.
Powel
Le 22 févr. 07 à 19:48, Jacquot Jules a écrit :
il me semble qu'avec les applications multi plateformes les
problèmes d'encodage n'existent pas . En tout cas pas avec RB qui
privilégie le tout UTF8.
Avec REALSQLDATABASE Il n'y a pas une ligne de Define ou Convert.
Et çà tourne sur toutes les machines.
J'avoue que je n'ai pas bien compris la demande de Powel.
J'ai donné une réponse qui pourrait convenir dans un cas précis
mais peut être pas dans le sien.
jules
Le 22 févr. 07 à 19:27, Arnaud Nicolet a écrit :
Reste à savoir "quand" c'est un fichier PC (notemment avec les
applications multi plateformes).
Le 22 févr. 07 à 18:58 Soir, Jacquot Jules a écrit:
Il faut toujours définir l'encodage d'origine. Ensuite le convertir.
Exemple PC-->Macintosh
define stream as textinputstream
stream=f.openastextfile ( f le folderitem à convertir)
stream.encoding=encodings.ISOLATIN1 ( c'est un fichier PC donc en
isolatin1)
s=stream.readall ( lit tout le texte)
fichiersortie=convertencoding(s,encodings.systemdefault) ( c'est
devenu un fichier macintosh)
jules
Le 22 févr. 07 à 16:38, Jacques Chanliau a écrit :
Je ne sais pas si je comprends bien le problème. Le textinput
lit un fichier. Une requête SQL dans une base en IsoLatin va
ramener un recordset en IsoLatin. Dans les deux cas, il suffit
de prévenir le programme qu'il va recevoir de l'isolation par
defineencocoding(texte, encodings.Isolatin1.
Reste la question de la base en isolatin. A mon avis, chaque
élément de chaque fiche de la base conserve l'encodage d'origine
du texte qui lui a été envoyé. Le fait de définir qu'une base
est en isolatin sert seulement aux utilitaires de la base pour
leur indiquer que ce qu'ils vont lire devrait être de
l'isolatin. Mais si on écrit dans une base dite en isolatin du
texte encodé en UTF8, ce texte sera accepté, et mal lu si on
essaye de le lire en isolatin! (C'est ce que je pense après de
longs errements avec l'encodage, mais je ne suis pas sur d'avoir
raison)
Jacques Chanliau
Le 22 févr. 07 à 13:58, Powel a écrit :
Bonjour,
Comment faire pour convertir un textinput en IsoLatin avant une
requête SQL dans une base en IsoLatin ?
Question probablement bête, mais je n'y parviens pas.
Powel
Si nous prenons la nature pour guide, nous ne nous égarerons jamais.
Cicéron
Quand l'eau baisse, les fourmis mangent les poissons.
Quand l'eau monte, les poissons mangent les fourmis.
proverbe thailandais
|