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...).
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;"&";"&") `et
$Txt_Target:=Remplacer chaine($Txt_Target;"<";"<") `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;"&";"&") `et
$Txt_Buffer:=Remplacer chaine($Txt_Buffer;"<";"<") `inférieur à
Fin de si
Fin de si
Fin de si
SUPPRIMER DOCUMENT($Txt_Path)
Fin de si
Fin de si
$0:=$Txt_Buffer



