-
Delphi XE et UTF8
Bonjour à tous,
Je sais que cette question a déjà été posée, mais aucune réponse sérieuse n'y a été donné.
J'ai mon projet tournant sous PostGRESQL et Delphi XE, et j'ai un soucis de format de chaine lorsque je fais des select sur la base (accents massacrés et inexistants).
Je n'ai pas envie de changer l'encodage de ma base, donc je voulais savoir si on pouvais modifier un quelquechose dans Delphi sans se taper les UTF8ToANSI pour chaque chaine qu'on interprete dans le code.
En vous remerciant
-
Il faut rappeler que XE est UNICODE par Défaut !
UTF8 est géré par un CodePage dans le type String, voir le type UTF8String, à l'époque c'était un AnsiString manipulé via UTF8Encode\UTF8Decode,
ce Type et fonctions sont obselètes remplacer par UTF8ToWideString ou UTF8ToString
c'est utile pour la gestion d'un DataSet Ansi comme TBDEDataSet ou TADODataSet, qui ne prendrait pas correctement en compte l'encodage UTF8
Il faudrait voir avec un DataSet qui gère des UnicodeString comme TCustomSQLDataSet comme sont gérés ce type de chaine, si la conversion est implicite ou pas ?
C'est peut-être ta library d'accès à la DB PostGreSQL qui n'est pas pleinement compatible !
Pense à configurer les options de connexions, sous MySQL, il faut indiquer le CharSet de la connexion indépendamment des charset des tables\champs
Tu peux avoir une table en UTF8 mais une connexion en Latin-1, c'est PGL qui fera la traduction !
Si tu as des caractères non latin, c'est évidemment non applicable !