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

C# Discussion :

Problème avec Convert.ToChar


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Par défaut Problème avec Convert.ToChar
    Bonjour,
    je fait face à un comportement bizarre de c# que je n'arrive pas à expliquer, voici le probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char c = Convert.ToChar(136); //c'est le code ascii de 
    Console.WriteLine(c);//affiche '?'
    int i = (int)(Encoding.Default.GetBytes(c.ToString())[0]);
    Console.WriteLine(i);//affiche 63 qui est le cde asciide '?'

  2. #2
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Je vois pas ou est le problème ...

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Par défaut
    le probleme c'est que 136 n'est pas le code ascii de '?',donc si je reformule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = (int)(Encoding.Default.GetBytes(Convert.ToChar(136).ToString())[0]);
    doit afficher 136 alors qu'elle affiche 63

  4. #4
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    Essai plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i = (int)(Encoding.Default.GetBytes(Convert.ToChar(88).ToString())[0]);
    regarde la table ascii : ( dans la table "Table de conversion : Décimal - Hexa-décimal - Octal - Binaire" )
    http://www.table-ascii.com/

  5. #5
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    doit afficher 136 alors qu'elle affiche 63
    Sûrement pas puisque Convert.ToChar se base sur Unicode (en .Net les caractères, et donc les chaînes, sont gérées en Unicode) et Encoding.Default n'étant généralement pas l'encodage Unicode tu n'auras jamais cette équivalence.

    Par contre avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int i = (int)(Encoding.Unicode.GetBytes(((char)136).ToString())[0]);
    tu devrais effectivement retrouver 136. Convert.ToChar avec un entier revient à caster cet entier en caractère, pour information. D'où le code précédent.

  6. #6
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Par défaut
    oui ca été ça la solution
    Merci

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

Discussions similaires

  1. problème avec convert et stuff
    Par xouzi dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/04/2011, 16h57
  2. Problème avec convert datetime
    Par sane79 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/07/2007, 10h43
  3. Problème avec un Convert
    Par elfye dans le forum Langage SQL
    Réponses: 1
    Dernier message: 28/02/2007, 13h42
  4. Réponses: 2
    Dernier message: 18/11/2006, 15h06
  5. Problème de conversion avec CONVERT
    Par gowser dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/12/2005, 16h48

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