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

MFC Discussion :

[MSXML] Problèmes d'accents


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    gg
    gg est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 8
    Par défaut [MSXML] Problèmes d'accents
    Bonjour,

    Actuellement j'essaye de récuperer une liste de mails d'un serveur Exchange 2003 en utilisant MSXML et WebDav.
    J'arrive à recuperer cette liste mais j'ai un problème avec tous les caracteres spéciaux, comme les accents.
    Au lieu d'avoir par exemple :
    j'obtiens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Courrier%20ind%C3%A9sirable"
    J'aimerai savoir comment recuperer le texte original.
    J'ai cru comprendre que MSXML avait un souci à ce niveau la, quelqu'un a deja eu ce probleme et a trouvé une solution ?

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    c'est pas une question d'encodage du document ? les UTF-8, 16 et autres ISO-8859-1 ?

  3. #3
    gg
    gg est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 8
    Par défaut
    C'est ce que je pensais. Par defaut c'est de l'UTF-8, j'ai essayé UTF-1, mais Exchange me signal une erreur dans ma requete et ISO-8859-1 mais impossible de récuperer le texte normalement.

  4. #4
    Membre chevronné
    Avatar de matazz
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 471
    Par défaut
    C'est de la séquence "ESCAPE" en gros % et code ASCII en hexa
    par contre il faudra peut-être passer en unicode car %C3%A9 pour "é" ça me parait bizarre

    Pour transformer une CString Escaped en CString normale:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    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
    //*******************************************************************
    //Formate la chaine en sequence escape
    //*******************************************************************
    CString COutils::UnEscape(CString Chaine)
    	{
    	CString UnEscaped = Chaine;
    	int posP = -1;
     
    	do
    		{
    		posP = UnEscaped.Find("%",posP+1); 
    		if(posP == -1){break;}
    		CString Escaped = UnEscaped.Mid(posP,3);
    		CString HexCode = UnEscaped.Mid(posP+1,2);
    		int ASCII = HexStrToInt(HexCode);
    		CString Char ("_");
    		Char.SetAt(0,(char) ASCII);
     
    		UnEscaped.Replace(Escaped.GetBuffer(0),Char);
    		}	while(true);
     
    	return UnEscaped;
    	}
     
    //*******************************************************************
    //Convertis une chaine Hexa en sa valeur en entier
    //Ex : "A9" renvoi 169
    //Attention dépacement de capacité du type Integer
    //*******************************************************************
    int COutils::HexStrToInt(CString HexString)
    	{
    	int HexVal = 0;
    	int nDecal = 0;
     
    	for (int Ind = HexString.GetLength()-1 ; Ind >= 0 ; Ind--)
    		{
    		HexVal = ((CharToIntB16(HexString[Ind]) & (0x000000FF )) << (4 * nDecal))|(HexVal);
    		nDecal++;
    		}
     
    	return HexVal;
    	}

Discussions similaires

  1. petit problème d'accent
    Par No_SenS dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/04/2005, 13h10
  2. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 15h36
  3. Réponses: 3
    Dernier message: 25/02/2005, 20h46
  4. [XSLT] application d une xslt et problème d'accents
    Par lanfeust23 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/07/2004, 13h08
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49

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