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 :

write un unicode


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 36
    Par défaut write un unicode
    Bonjour a tout le monde

    Bon ba je pense que le titre en dit gros lol...

    Je voudrais avec write afficher un caractère unicode.

    je sais que je dois utiliser le type wchar_t.

    mon problème est qu'a l'affichage, je me retrouve avec des 0 en plein milieu de ma chaine... je ne comprend pas pourquoi...

    Pouvez-vous m'aider svp?

    merci

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    bonjour,
    ce serait possible de mieux écrire ses messages ? Merci
    Par "write" tu veux écrire dans un fichier ou à l'écran ?
    Tout dépend de l'OS utilisé.
    Si c'est pour afficher avec printf à l'écran il faut effectuer une conversion wchar_t vers char (mais il y a peut-être d'autres méthodes , je ne programme jamais en mode console)

    Mais sans code on peut pas répondre.

  3. #3
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 771
    Par défaut
    Citation Envoyé par fpasquer Voir le message
    Mon problème est qu'a l'affichage, je me retrouve avec des 0 en plein milieu de ma chaine... je ne comprend pas pourquoi...
    Ce sont les caractères ASCII codés en UTF-16

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 36
    Par défaut
    Bonjour, merci de ta réponse.

    Je vais mieux écrire mes messages.

    Je suis sur el capitan.

    Dans un premier temps, le but serai d'afficher un caractère sur la sortie standard. Si je voudrais qu'avec peu de modifications pouvoir écrire sur un fichier bien sur.

    Je ne veux pas afficher avec printf, je dois utiliser write et juste write. Je ne cherche pas de code, je voudrais juste savoir comment faire.

    Merci

  5. #5
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Unicode seul ça ne veut pas dire grand chose. Quelle est l'implémentation qui t'intéresses ? UTF-8, UTF-16/UCS-2, UTF-32..?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 36
    Par défaut
    en faite, je dois faire pareil que printf("%S\n", L"texte").

    je pense que les caractères sont en UPF-8

    Merci

  7. #7
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    mes excuses alors je ne peux pas t'aider je ne connais que la programmation Windows win32.
    Il n'y a pas une aide pour développeur équivalent au MSDN de Microsoft mais pour El Capitan ?

  8. #8
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Citation Envoyé par fpasquer Voir le message
    en faite, je dois faire pareil que printf("%S\n", L"texte").


    Citation Envoyé par fpasquer Voir le message
    je pense que les caractères sont en UPF-8
    Tu penses ?

    Bon sans plus de détails :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setlocale(LC_ALL, "" ou "fr_FR.UTF-8");
    printf("%s\n", anything);

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je ne pense pas qu'il soit possible avec les restrictions Épitiennes d'afficher directement un wchar_t (ou un tableau de).

    Tu vas devoir toi-même convertir l'encodage du wchar_t en question en UTF-8, avec une longueur dépendant de la valeur du codepoint (ou partir directement d'un texte UTF-8) pour pouvoir l'afficher avec un write() sur STDOUT_FILENO (en supposant que la machine sur laquelle tu dois faire ça soit configurée pour UTF-8, si tu n'as pas le droit à setlocale()).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Utilisation de l'unicode dans un algo de cryptage
    Par Zazeglu dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 28/10/2003, 14h38
  2. [Unicode] Internationalisation d'une application
    Par Thierry Laborde dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2003, 20h15
  3. conversion Unicode -> ASCII
    Par juzam dans le forum C
    Réponses: 8
    Dernier message: 24/07/2003, 10h07
  4. [debutant] unicode
    Par dadou91 dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 23/05/2003, 10h12
  5. write() dans une socket.. unix
    Par slack dans le forum Réseau
    Réponses: 5
    Dernier message: 18/12/2002, 20h42

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