J'ai eu ce genre de problème à deux occasions: quand l'encodage
n'était pas vraiment reconnu, ou quand je mettais dans l'editfield un
texte provenant de la concaténation de plusieurs autres textes de
sources différentes.
Dans le premier cas, en admettant que le résultat de la lecture du
fichier soit stockée dans une variable texte "Montexte", il suffit de
forcer RB à interpréter ce texte en UTF8;
EditField.Text = DefineEncoding(Montexte, Encodings.UTF8). Si ça ne
marche pas, c'est que le texte n'est pas en UTF8.
Dans le deuxième cas, la solution est un peu plus complexe, mais
habituellement le problème n'est pas insurmontable.
Cordialement,
Jacques Chanliau
Le 6 juil. 09 à 15:11, Jean-Luc Arnaud a écrit :
Bonjour,
Le contexte : Mac OS X 10.5.7, G4 bi-proc, RB 2009r1
Le projet : Gestion de pages HTML
Le problème : un fichier .html à priori en texte UTF8 (reconnu comme
tel lors de son chargement en mémoire par RB) contient des
accentuées, notamment é avec un code binaire hE9. Lu dans TextEdit,
l'accent est correctement interprété.
Ce fichier lu dans RB (et, je le répète, reconnu codé UTF8) donne un
binaire correct dans une variable String. Là où ça se gate, c'est
lorsque cette variable est attribuée à la propriété Text d'un
EditField. D'après la doc RB, l'EditField maintient le texte en
mémoire au format Unicode et l'affiche en UTF8, et cette conversion
dénature le binaire : mon accent é est traduit par trois codes
binaires hEF+hBF+hBD.
Impossible de trouver une solution pour conserver, dans l'EditField,
un accent é traduit par le code binaire hE9. Or, c'est
indispensable, car cet EditField sert ensuite à lancer une recherche
(qui en l'état actuel des choses, échoue systématiquement).
J'ai tenté je ne sais combien de conversion, j'ai même tenté le
remplacement binaire des trois codes cités plus haut (l'EditField
remplace immédiatement mon hE9 par ses trois codes !!!). Bref, le
suicide me semble l'ultime recours, à moins que ...
Au secours !!!
Jean-Luc
|