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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

[XML en Russe et Français] - Codage des carctères


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 44
    Points : 27
    Points
    27
    Par défaut [XML en Russe et Français] - Codage des carctères
    Bonjour,

    Je suis entrain de créer un fichier XML multilangue - Français - anglais - russe. J'utilise Microsoft.XMLDOM pour y ajouter les données ainsi que la technologie ASP.
    J'ai un problème de codage des caractères. Si je mets le fichier XML en russe la langue russe passe bien mais pas le français. Pour le français il encode des caractères avec les entités mais le signe et aussi. Du coup ça affiche n'importe quoi. L'UTF-8 ne marche pas non plus.

    Comment je dois gérer le codage des caractères?

    Merci

    Maxime

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Salut

    tu peux choisir d'encoder ton fichier en UTF-8 chaque caractère est donc codé sur 8 bits, mais ceci ne marche pas pour les "alphabets" non latin de souche , c'est pour ca qu'il a l'UNICODE (1 caractere est defini sur 16 bits).

    Donc a priori si tu demande d'encoder ton fichier en UTF-16 ca devrait marcher.

    Sinon autre solution ton fichier reste en UTF-8 mais pour le russe tu ajoutes à ton model DOM les caractères avec une syntaxe spécific à XML et vraiment très lisible

    pour encoder un ä tu écris ä
    E4 correspondant à la valeur hexadécimal en Unicode de ä

    @+
    Seb

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par sebA
    tu peux choisir d'encoder ton fichier en UTF-8 chaque caractère est donc codé sur 8 bits, mais ceci ne marche pas pour les "alphabets" non latin de souche , c'est pour ca qu'il a l'UNICODE (1 caractere est defini sur 16 bits).

    Donc a priori si tu demande d'encoder ton fichier en UTF-16 ca devrait marcher.
    petite correction, utf-8 peut coder les caractères unicode 48 octets donc normallement ca devrait fonctionner

    donne nous un lien vers ce fichier pour qu'on puisse l'étudier plus en détails

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    En fait le problème se situe au niveau de l'enregistrement dans le fichier XML.
    A priori d'après ce que j'ai vu l'utf-8 devrait suffir pour pour faire cohabiter le russe et le français. Cependant lorsque j'enregistre dans un fichier XML avec ASP cela me donne des trucs qui ne sont pas de l'UTF-8 car lorsque je force utf-8 avec Firefox, cela ne change rien.

    En ce qui concerne l'utilisation des entités pour les lettres russes, le problème c'est que mes caractères ne sont pas codés comme "&.#.1234" mais comme "&.amp.#1234" ce qui le affiche tels qu'ils sont.

    Merci beaucoup et bon forum

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par mpereg
    En fait le problème se situe au niveau de l'enregistrement dans le fichier XML.
    A priori d'après ce que j'ai vu l'utf-8 devrait suffir pour pour faire cohabiter le russe et le français. Cependant lorsque j'enregistre dans un fichier XML avec ASP cela me donne des trucs qui ne sont pas de l'UTF-8 car lorsque je force utf-8 avec Firefox, cela ne change rien.
    donc si ASP ne gère pas l'utf-8 il ne te restes plus qu'à utiliser les entités poru toutes les caractères qui en sont pas de l'ascii de base

    Citation Envoyé par mpereg
    En ce qui concerne l'utilisation des entités pour les lettres russes, le problème c'est que mes caractères ne sont pas codés comme "&.#.1234" mais comme "&.amp.#1234" ce qui le affiche tels qu'ils sont.
    d'où est ce que ca vient ? de l'asp ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Merci,

    J'ai trouvé la solution au problème - il suffisait de mettre en haut du fichier ASP le @codepage qui va bien i.e. celui qui correspond à l'UTF-8 et tout marche nickel

    Maxime

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    ca tombe bien, ta solution est la meilleure pour ne pas tomber dans le bricolage

    maintenant que c'est résolu, n'oublie pas de cliquer sur le bouton en bas de cette page

  8. #8
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 110
    Points : 39
    Points
    39
    Par défaut
    J'ai le même problème mais avec Java JEE

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Bonjour
    Dans une jsp=> meme solution qu'en asp, il suffit de placer l'encoding dans l'entete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@page encoding="UTF-8"%>
    .
    Si tu es dans une servlet pour la réponse sur navigateur ajouter l'encoding sur le header content- type.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.setContentType("text/xml; encoding=utf-8");
    Enfin si ton fichier est sauvegardé sur disque:
    Comment est il sérializé?

    cdlt
    Willy78

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/02/2008, 18h19
  2. [WebForms][Xml][Xsl] Comment eviter un décalage des images ?
    Par ekmule dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 14/12/2005, 15h07
  3. [Sécurité] Codage des caractéres arabe
    Par riadh100 dans le forum Langage
    Réponses: 3
    Dernier message: 13/09/2005, 13h40
  4. Modifier le codage des pixels pour capture vidéo
    Par supergrey dans le forum DirectX
    Réponses: 10
    Dernier message: 27/08/2005, 10h48
  5. [Encodage] codage des caractères spéciaux
    Par soulhouf dans le forum Général Java
    Réponses: 11
    Dernier message: 24/08/2005, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo