PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV Mobile 2024 → Encodage Ansi dans un fichier texte
Encodage Ansi dans un fichier texte
Iniciado por Christian, jan., 16 2019 10:45 AM - 4 respostas
Membro registado
155 mensagems
Publicado em janeiro, 16 2019 - 10:45 AM
Bonjour à tous,

Je rencontre un petit soucis d'enregistrement de données provenant d'un serveur vers un fichier texte.
Je reçois des données cryptées d'un serveur linux (https), encodées en UTF8, ci-dessous les entêtes renvoyées par le serveur :
HTTP/1.1 200 OK
...
Content-Type: text/html; charset=utf8
....


Mon projet en configuré en ANSI.

Lorsque je créé un fichier vide à l'aide fSauveBuffer(fichierDest,""), sur la carte SD puis récupère le fichier sur PC. Je peux vérifier avec notepad++ que l'encodage est "Ansi".

Si j'écrit le moindre texte dans le fichier :
aa est une chaîne ANSI = "a"
nId5 est un entier = fOuvre(fichierDest+1)
SI nId5 <> -1 ALORS
fEcrit(nId5,aa)
fFerme(nId5)
FIN



Lorsque je récupère le fichier sur PC, le fichier est encodé en UTF8. Quelqu'un aurait une idée du pourquoi ? Et surtout, comment conservé un encodage en Ansi

Merci par avance à celui qui pourra m'aiguiller.
Publicado em janeiro, 16 2019 - 5:15 PM
Christian a exposé le 16/01/2019 :
Bonjour à tous,

Je rencontre un petit soucis d'enregistrement de données provenant d'un
serveur vers un fichier texte.
Je reçois des données cryptées d'un serveur linux (https), encodées en UTF8,
ci-dessous les entêtes renvoyées par le serveur :
HTTP/1.1 200 OK
..
Content-Type: text/html; charset=utf8
...


Mon projet en configuré en ANSI.

Lorsque je créé un fichier vide à l'aide fSauveBuffer(fichierDest,""), sur la
carte SD puis récupère le fichier sur PC. Je peux vérifier avec notepad++ que
l'encodage est "Ansi".

Si j'écrit le moindre texte dans le fichier :
aa est une chaîne ANSI = "a"
nId5 est un entier = fOuvre(fichierDest+1)
SI nId5 <> -1 ALORS
fEcrit(nId5,aa)
fFerme(nId5)
FIN



Lorsque je récupère le fichier sur PC, le fichier est encodé en UTF8.
Quelqu'un aurait une idée du pourquoi ? Et surtout, comment conservé un
encodage en Ansi

Merci par avance à celui qui pourra m'aiguiller.


bonjour,

si vous faites un fSauveBuffer() pour créer le fichier vide sur votre
mobile et de le remplir par la suite il me semble normal que ce fichier
soit dans le format du mobile à savoir UTF8

pouvez-vous essayer de créer votre fichier avec la fonction : fOuvre()
en utilisant les constantes du mode d'ouverture du fichier : foCréation
ou foCréationSiInexistant selon votre besoin et du mode d'accès au
fichier : foAnsi

--
Cordialement JeAn-PhI
Membro registado
155 mensagems
Publicado em janeiro, 17 2019 - 5:03 AM
Merci pour votre réponse.
Le test avec la fonction "fSauveBuffer" avait uniquement pour but de créer un fichier vide et de vérifier son encodage.
Il est en de même avec la fonction fouvre(foCréation, si je n'utilise pas la fonction fecrit le fichier est bien en ansi, et dès lors que j'ecrit dans le fichier il passe en utf8 :(
La constante foAnsi n'éxiste pas en Android ou du moins pas dans un projet configurer en Ansi
Publicado em janeiro, 17 2019 - 7:36 PM
Sous Android, l'encodage par défaut dans les configs Ansi est UTF-8.
Si vous voulez que les chaines ANSI et donc le fichier soit en Latin, il faut faire un ChangeAlphabet(alphabetAnsi) au lancement de l'application (typiquement dans le code d'init du projet)
Membro registado
155 mensagems
Publicado em janeiro, 19 2019 - 8:31 AM
Merci beaucoup pour votre réponse.
C'est quand même un peu dur a cerner, je pensais avoir compris les différents types d'encodage ( ansi, unicode, utf8).
Maintenant, y a aussi l'alphabet qui rentre en ligne de compte, j'avais pensé qu'en spécifiant ansi dans l'encodage par défaut et en fixant les chaines en ansi, cela aurait suffit, mais non ... :)