OVH Cloud OVH Cloud

UTF8 et Windev

2 réponses
Avatar
Roumegou Eric
Bonjour

Je suis dans la panade car je dois générer un fichier xml pour un
outil.
Je l'avais généré en latin-1 avec cet entete
<?xml version="1.0" encoding="ISO-8859-1"?>

et je le lisais bien avec xml_spy

mais il faut que cela soit en UTF8 pour être compris par ce
scrogneugneu d'outils

donc
<?xml version="1.0" encoding="UTF-8"?>

mais avec un fsauvetexte du fichier, je vais bien ouvrir ensuiite ce
fichier avec mon éditeur (avec les bons accents) mais xmlspy me jete !

donc il faudrait une sorte de fonction pour encoder en UTF8

Y a rien dans WD 75 (j'ai essayé les ansiversoem, texteversxml mais
c'est pas ça)

Donc comment faire ?
un petit utilitaire qui me convertirait ça et que je pourrais envoyer
par programme ?

Merci de votre aide car c'est très urgent

--
Eric Roumégou
Webmaster des Wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci dessus pour me contacter en privé)

2 réponses

Avatar
Roumegou Eric
Roumegou Eric a formulé la demande :
Bonjour

Je suis dans la panade car je dois générer un fichier xml pour un outil.
Je l'avais généré en latin-1 avec cet entete
<?xml version="1.0" encoding="ISO-8859-1"?>

et je le lisais bien avec xml_spy

mais il faut que cela soit en UTF8 pour être compris par ce scrogneugneu
d'outils

donc
<?xml version="1.0" encoding="UTF-8"?>

mais avec un fsauvetexte du fichier, je vais bien ouvrir ensuiite ce fichier
avec mon éditeur (avec les bons accents) mais xmlspy me jete !

donc il faudrait une sorte de fonction pour encoder en UTF8

Y a rien dans WD 75 (j'ai essayé les ansiversoem, texteversxml mais c'est pas
ça)

Donc comment faire ?
un petit utilitaire qui me convertirait ça et que je pourrais envoyer par
programme ?

Merci de votre aide car c'est très urgent



en clair si vous avez l'algo de Chaineversutf8 (sortie en 10 et ça
marche bien) pour la 7.5 ça m'interesse.
le voici en vbs, mais je ne pige pas les chr avec des And et Or ???
Function Encode_En_UTF8(LaChaine)
Dim c
Dim n
Dim Utf8_text

Utf8_text = ""
n = 1
Do While n <= Len(LaChaine)
c = AscW(Mid(LaChaine, n, 1))
If c < 128 Then
Utf8_text = Utf8_text + Chr(c)
ElseIf ((c > 127) And (c < 2048)) Then
Utf8_text = Utf8_text + Chr(((c 64) Or 192))
Utf8_text = Utf8_text + Chr(((c And 63) Or 128))
Else
Utf8_text = Utf8_text + Chr(((c 4096) Or 224))
Utf8_text = Utf8_text + Chr((((c 64) And 63) Or 128))
Utf8_text = Utf8_text + Chr(((c And 63) Or 128))
End If
n = n + 1
Loop
Encode_En_UTF8 = Utf8_text
End Function

--
Eric Roumégou
Webmaster des Wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci dessus pour me contacter en privé)
Avatar
Roumegou Eric
Dans son message précédent, Roumegou Eric a écrit :
Roumegou Eric a formulé la demande :

Function Encode_En_UTF8(LaChaine)
Dim c
Dim n
Dim Utf8_text

Utf8_text = ""
n = 1
Do While n <= Len(LaChaine)
c = AscW(Mid(LaChaine, n, 1))
If c < 128 Then
Utf8_text = Utf8_text + Chr(c)
ElseIf ((c > 127) And (c < 2048)) Then
Utf8_text = Utf8_text + Chr(((c 64) Or 192))
Utf8_text = Utf8_text + Chr(((c And 63) Or 128))
Else
Utf8_text = Utf8_text + Chr(((c 4096) Or 224))
Utf8_text = Utf8_text + Chr((((c 64) And 63) Or 128))
Utf8_text = Utf8_text + Chr(((c And 63) Or 128))
End If
n = n + 1
Loop
Encode_En_UTF8 = Utf8_text
End Function




Merci à Bernard qui m'a indiqué la traduction de cette fonction.

PROCEDURE VersUtf8(lachaine)
c est un entier
n est un entier
Utf8txt est une chaîne
n=1

TANTQUE n <= Taille(lachaine)
c=Asc(lachaine[[n]])
SELON Vrai
CAS c < 128
Utf8txt += Caract(c)
CAS 127<c<2048
Utf8txt+= Caract(OUBinaire(c/64,192))
Utf8txt+Êract(OUBinaire(ETBinaire(c,63) , 128))
AUTRE CAS // a adapter peut etre pour WD75
Utf8txt += Caract(OUBinaire(c / 4096, 224))
Utf8txt += Caract(OUBinaire(ETBinaire(c / 64, 63),128))
Utf8txt += Caract(OUBinaire(ETBinaire(c,63) ,128))
FIN

n = n + 1
FIN
RENVOYER Utf8txt

--
Eric Roumégou
Webmaster des Wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci dessus pour me contacter en privé)