IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Encoder et décoder du texte

Encoder, décoder en UTF8, UTF-7, ISO-8859-x, US-ASCII, cp1252, cp850… ♪

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Produit : 4D 2004  ·  Plateforme : Mac, Win


Vous trouverez ci-dessous deux méthodes pour encoder/décoder en UTF-8 par défaut, mais également avec d'autres encodages (UTF-7, ISO-8859-x, US-ASCII, cp1252, cp850...).

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
   ` ----------------------------------------------------
   ` Méthode : Encode_Text
   ` Créée le 24/02/06 par vdl
   ` ----------------------------------------------------
   ` Description
   ` Encode le Texte $1 avec l'encodage $2 (UTF-8 si $2 n'est pas présent)
   ` ----------------------------------------------------

C_TEXTE($1)
C_TEXTE($2)
C_TEXTE($0)

C_TEXTE($Txt_encoding;$Txt_Target;$Txt_Path;$Txt_Buffer)
C_BLOB($Blb_Buffer)
C_HEURE($Gmt_Doc)

$Txt_Target:=$1
Si (Nombre de parametres>1)
   $Txt_encoding:=$2
Fin de si

Si (Longueur($Txt_encoding)=0)
   $Txt_encoding:="UTF-8"
Fin de si

Si (Longueur($Txt_Target)>0)
   $Txt_Path:=Dossier temporaire+"encode.xml"
      Si (Tester chemin acces($Txt_Path)=Est un document )
         SUPPRIMER DOCUMENT($Txt_Path)
      Fin de si
   $Gmt_Doc:=Creer document($Txt_Path)
   Si (OK=1)
      SAX ECRIRE OPTIONS XML($Gmt_Doc;$Txt_encoding;Vrai;Faux)
      SAX OUVRIR ELEMENT XML($Gmt_Doc;"root")
      SAX AJOUTER VALEUR ELEMENT XML($Gmt_Doc;$Txt_Target)
      SAX FERMER ELEMENT XML($Gmt_Doc)
      FERMER DOCUMENT($Gmt_Doc)
      DOCUMENT VERS BLOB($Txt_Path;$Blb_Buffer)
      Si (OK=1)
         $Txt_Buffer:=BLOB vers texte($Blb_Buffer;Texte sans longueur )
         FIXER TAILLE BLOB($Blb_Buffer;0)
         $Txt_Buffer:=Sous chaine($Txt_Buffer;Position("<root>";$Txt_Buffer)+6)
         $Txt_Buffer:=Sous chaine($Txt_Buffer;1;Position("</root>";$Txt_Buffer)-1)
      Fin de si
      SUPPRIMER DOCUMENT($Txt_Path)
   Fin de si
Fin de si

$0:=$Txt_Buffer



   ` ----------------------------------------------------
   ` Methode : Decode_Text
   ` Creee le 24/02/06 par vdl
   ` ----------------------------------------------------
   ` Description
   ` Decode le Texte $1 encodé avec l'encodage $2 (UTF-8 si $2 est absent)
   ` ----------------------------------------------------

C_TEXTE($1)
C_TEXTE($2)
C_TEXTE($0)

C_TEXTE($Txt_encoding;$Txt_Target;$Txt_Path;$Txt_Buffer)
C_BLOB($Blb_Buffer)
C_HEURE($Gmt_Doc)

$Txt_Target:=$1
Si (Nombre de parametres>1)
   $Txt_encoding:=$2
Fin de si

Si (Longueur($Txt_encoding)=0)
   $Txt_encoding:="UTF-8"
Fin de si

Si (Longueur($Txt_Target)>0)
   $Txt_Target:=Remplacer chaine($Txt_Target;"&";"&amp;") `et
   $Txt_Target:=Remplacer chaine($Txt_Target;"<";"&lt;") `inférieur à
   $Txt_Path:=Dossier temporaire+"decode.xml"
   Si (Tester chemin acces($Txt_Path)=Est un document )
      SUPPRIMER DOCUMENT($Txt_Path)
   Fin de si
   $Gmt_Doc:=Creer document($Txt_Path)
   Si (OK=1)
      SAX ECRIRE OPTIONS XML($Gmt_Doc;$Txt_encoding;Vrai;Faux)
      ENVOYER PAQUET($Gmt_Doc;"<root><string>")
      ENVOYER PAQUET($Gmt_Doc;$Txt_Target)
      ENVOYER PAQUET($Gmt_Doc;"</string></root>")
      FERMER DOCUMENT($Gmt_Doc)
      $Txt_Root:=DOM Analyser source XML($Txt_Path;Faux)
      Si (OK=1)
         $Txt_Node:=DOM Chercher element XML($Txt_Root;"root/string")
         Si (OK=1)
            DOM LIRE VALEUR ELEMENT XML($Txt_Node;$Txt_Buffer)
            Si (OK=1)
               $Txt_Buffer:=Remplacer chaine($Txt_Buffer;"&amp;";"&") `et
               $Txt_Buffer:=Remplacer chaine($Txt_Buffer;"&lt;";"<") `inférieur à
            Fin de si
         Fin de si
      Fin de si
      SUPPRIMER DOCUMENT($Txt_Path)
   Fin de si
Fin de si

$0:=$Txt_Buffer

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2006 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.