PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Comment détecter si une chaine est au format UTF8
Comment détecter si une chaine est au format UTF8
Débuté par GUERVILLE, 28 oct. 2015 11:33 - 1 réponse
Posté le 28 octobre 2015 - 11:33
Bonjour,

Savez-vous si il est possible de détecter si une chaîne archivée dans une base de données est au format UTF8 SVP ?
En effet, suite à un bug du driver MYSQL, il arrive que lorsqu'on arrête le service MySQL et qu'on le ré-ouvre Windev archive les chaines de caractères au format UTF8 au lieu de les archiver en texte normal, ce qui fait qu'ensuite on retrouve des @ dans les données.

Je suis donc en train de faire une moulinette pour réparer ce problème, mais j'ai besoin de détecter si une chaîne archivée dans la base est au format UTF8 ou non (je ne parle pas du type de champ, mais bien de l'archivage de la donnée elle même)

En gros j'ai besoin de faire ca

j'ai besoin de faire le test suivant
Si mabase.monchamp est archivé au format UTF8 alors
mabase.monchamp =UTF8versChaine(mabase.monchamp )
hmodifie(mabase)
fin
Posté le 29 mars 2017 - 16:43
Personnellement, je charge la chaîne à tester dans une variable de type chaîne ANSI et je regarde si on y trouve les caractères spéciaux qui trahissent le format UTF8 :

sChaineANSI est une chaîne ANSI = sContenuSQL
RENVOYER ( ChaîneOccurrence(sChaineANSI,["Ã","€"])>0 )

Ça ne marche que si la chaîne contient des caractères accentués ou le caractère €. Personnellement ce sont ces caractères qui me posent problème.