[Charset] Symbole Euro
par Guillaume | Statut : Non résolu lundi 5 juin 2006 à 10:42:45 |
Bonjour à tous,
j'ai quelques soucis d'intégration de données liés aux characters set unix/windows. Et je ne sais comment les résoudre.
Voici mon souci :
J'ai un flux xml (fichier texte) sous windows que je dépose sur une machine Unix passerelle via Winscp.
Cette machine passerelle me permet de faire un scp vers ma machine unix devant intégrer mon flux xml.
Résumé :
___WINDOWS___|___PASSERELLE UNIX___|___ MACHINE UNIX___|___BDD___
Fic. xml ------ Winscp ---------> x --------- SCP -------> x ----->Moulinette---> x
Mon flux xml (fic.xml) contient des données comme le caractères € (Euro) et d'autres caractères accentués.
J'ai donc décidé de passer mon flux xml en UTF-8 afin de pouvoir supporter ces caractères sur dans flux.
Le fichier de départ (sous Windows) est encodé en UTF-8 sur le disque et dans le flux xml, j'ajoute à mon tag <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Et je reprend le transfert de mon flux sur les différentes machines (noté plus haut) ! J'obtiens les valeurs suivantes pour le caractère € (Euro) sur les différents environnement :
-> sous windows : €
-> sur machine passerelle : \342\202\254
-> sur machine d'intégration : â~B¬
(valeurs éditées sous vi)
Quand j'intégre ce flux (dans son dernier état donc) en BDD, mon caractère € (euro) est verollé ! Et est ne s'affiche pas correctement !
J'aimerai savoir si vous avez déjà eu ce genre de souci et comment vous l'avez résolu ?
Ce que j'ai testé :
============
-> Ouverture de ma BDD avec MySQL Query Browser et saisie via cet outil du caractère € (euro) : Ok ! S'affiche bien en BDD ! (la BDD supporte donc bien l'encodage du symbole)
-> Création de mon flux directement "à la mano" sur l'environnement d'intrégration (derniere machine unix) et saisie du caractère € (euro) avec vi. Puis intrégration du flux : Ok ! S'affiche bien en BDD ! (la moulinette d'intégration du flux supporte donc bien mon caractère € (euro)).
-> Création du flux sous windows en UTF-8, tar-gzip de ce flux avec cygwin, envoi à la machine d'intragration via la machine passerelle (cf schéma plus haut) puis détar-gzip du fichier et intégration : Ko ! Le caractère € (euro) en BDD ne s'affiche pas correctement ! (€)
Et voici quelques questions relatives à tous ces tests et dont les réponses m'aideraient fortement :
-> Comment peut on connaitre le format d'encodage d'un fichier sous unix ?
-> Est il possible que le fait de passer le fichier de Windows à une machine Unix puis à une autre machine unix par scp fasse perdre l'encoding du fichier ? Dans ce cas, comment meme le contenu d'un tar-gzip peut etre affecté par ce souci ?
->Sous vi, j'ai réussi à saisir le caractère € (sous vim en réalité) avec Ctrl+V 128. Ensuite, quand j'intégre ce fichier, le caractère est bon en BDD. Comment vi encode-t'il les fichiers ? Selon les caractères que l'on a saisi ? ou alors toujours en UTF-8 afin d'etre au maximum compatible ?
-> Lorsque j'édite un fichier sous vi et que je l'enregistre, son format d'encodage (entre avant ouverture et apres enregistrement) peut il changer ?
Enfin, si vous avez quelques infos (forums, outils, docs, howto, ...) concernant l'encoding de fichiers sous unix pouvez vous me les faire partager ?
Merci d'avance à tous pour votre aide !
Guillaume