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 :

Pourquoi le caractère Pique (♠︎) n'est-il pas accepté comme caractère ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    DI retraité
    Inscrit en
    Septembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : DI retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2018
    Messages : 3
    Par défaut Pourquoi le caractère Pique (♠︎) n'est-il pas accepté comme caractère ?
    Bonjour.
    Je travaille avec Visual Studio Community sous MacOS.
    Je souhaite définir une constante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public const char ChrPiqueGr = '♠︎';
    Pour insérer le caractère graphique Pique entre les apostrophes, j'utilise le visualiseur de caractères de MacOS.
    L'instruction ci-dessus génère une erreur : "Trop de caractères dans le littéral de caractère".
    Affiché en hexadécimal, je lis "E2 99 A5 EF B8 8E". Je sais bien qu'un caractère Unicode peut occuper 1, 2 ou 3 octets, mais 6 ?
    Quelqu'un peut-il expliquer ?
    Merci d'avance,
    Gilbert
    P.S. Après publication, mon caractère ♠︎ dans le code est affiché avec deux &#, qu'est-ce que ceci signifie ?

  2. #2
    Membre chevronné Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Par défaut
    C'est simple un char n'attend qu'un seul caractère.

    char a = 'a'; => ok
    char w = 'doubleV' => ko

    Tu cherches beaucoup trop loin .

    Bon code

  3. #3
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut

    Pour utiliser un code Unicode et l'affecter à un char, il faut utiliser \u suivi du code caractère en hexadécimal. Exemple avec le pique (U+2660) :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    char spade = '\u2660';
    Je ne sais pas comment ça se passe sur MacOS, mais tu risques de ne pas voir ce caractère correctement affiché sur ta console (la console de Windows n'affiche pas par défaut - je n'en sais pas plus - les caractères Unicode)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    DI retraité
    Inscrit en
    Septembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : DI retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2018
    Messages : 3
    Par défaut
    Vous l'avez compris : dans l'éditeur de VS, j'ai bien entré
    public const char ChrPiqueGr = '♠︎';
    Le fait d'avoir mis cette instruction entre les balises CODE a transformé l'affichage de cette instruction, et révélé la présence de deux caractères alors qu'en fait un seul est affiché. Quelqu'un peut-il expliquer ce phénomène ?

Discussions similaires

  1. Pourquoi la valeur de mon return n'est-elle pas illégale?
    Par mrTerribleLie dans le forum Débuter
    Réponses: 5
    Dernier message: 17/07/2011, 11h51
  2. Réponses: 5
    Dernier message: 07/07/2006, 11h51
  3. Réponses: 14
    Dernier message: 22/04/2006, 21h59
  4. Pourquoi rand()%N n'est il pas équiprobable?
    Par Pragmateek dans le forum C++
    Réponses: 12
    Dernier message: 22/03/2006, 23h37
  5. Réponses: 3
    Dernier message: 24/10/2005, 16h59

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