jeu. 15 décembre 2016, 16h36
Francis Faure
France
atoutfox.public.association
Re: caractère spécial Œ qui donne O dans un champ texte
Jean,
Ton exemple ne prouve rien... au contraire...
il ne reprend pas la demande du caractère "Œ"...
et d'ailleurs tu écris CPCONVERT(1252, 850, c) à l'envers et non CPCONVERT(850,1252, c)... qui te donnerait bien le "Ç"
doc de VFP :
CPCONVERT(nCurrentCodePage, nNewCodePage, cExpression)
Propose un exemple CPCONVERT() avec la demande initiale qui était sur le "Œ"... !
Tu ne le pourras pas !
Pourquoi :
- Le symbole "€" (code 0x80) en Windows 1252 n'existe pas en table 850 et 0x80 est représente un "Ç" (c cédille majuscule). Aussi lors de l'écriture dans la table, VFP ne l'a pas converti faute d'existence d'équivalent de classement en 850 et donc laissé sur le code 0x80.
Dans ce cas tu peux bricoler un cpconvert() pour revenir en 1252 mais c'est inutilisable en saisie, édition etc...
- La demande initiale était sur le "Œ", ce cas est différent car son code en Windows 1252 est 0x8C mais converti en 0x4F en caractère "O" le plus approchant en table 850.
Donc tu ne pourras jamais faire un cpconvert() pour retrouver "Œ"... puisque le "O" existe en table Windows 1252 et que "Œ" n'existe pas en table 850.
La solution passe par des tables encodées en Windows 1252 pour la France au lieu d'encoder MsDos 850, si c'est possible selon le contexte du projet. (Probablement d'anciennes tables foxpro)
Bien à toi.
Le jeu. 15 décembre 2016, 15h30 Jean à Grenoble a écrit :
> BROWSE && affiche un ç majuscule
> BROWSE FIELDS ca1=CPCONVERT(1252, 850, C1) && affiche un '€' !!!
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000018004