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