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

Bibliothèque standard C Discussion :

(locale.h) setlocale fr UTF-8 Windows


Sujet :

Bibliothèque standard C

  1. #1
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut (locale.h) setlocale fr UTF-8 Windows
    Bonjour,

    le titre a dû vous mettre la puce à l'oreille sur ma demande

    J'arrive pas à cracher de l'UTF-8 avec un strftime, setlocale ne voulant pas grand chose d'autre que 1252 comme charset (d'ailleurs il aime pas sa variante standard 8859-1). Apparemment ça ne semble pas être un souci avec la lib sous Ninux, mais sous Zindozs il comprend pas. J'ai essayé nombre de def comme "fr.UTF-8", "fr-FR.UTF-8", "French_France.UTF-8" et avec toutes les variantes pour le charset (maj/min, pas de tiret).

    Donc si vous avez une solution, ou même si vous avez la certitude que ce n'est pas possible, merci de me tenir au jus

    PS : "fr-FR" et non "fr_FR", encore une spécificité sous Zindozs (cf. fiche MSDN).
    Plus je connais de langages, plus j'aime le C.

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 435
    Points
    2 435
    Par défaut
    Bonjour.

    Comment testes-tu la présence de l'unicode ? Avec un éditeur de commande ?
    Si oui, ce dernier n'aime pas du tout ce qui n'est pas iso-8859 et ça va fausser tes tests.
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  3. #3
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    à la base j'ai surtout vu que mon archive odt ne voulait pas s'ouvrir (j'injecte la date dans un fichier xml puis je le zip) (1).
    Ensuite j'ai simplement regardé le retour de la fonction setlocale qui me dit "n'a pas compris" (renvoie NULL) quand je précise UTF-8.
    Enfin la fiche MSDN me dit bien : si tes char dépassent 2 bytes je sais pas faire (2)
    Du coup je me demandais si y'avait une astuce connue.

    PS : Au pire j'ai les fonctionnalités dans les lib internes de la boîte, mais elles sont un peu lourdingues.

    (1) sans préciser le charset, sinon il comprend pas, ne me fait pas de français, et du coup pas de souci d'accent.
    (2) [..]includes all those supported by the Windows NLS API except code pages that require more than two bytes per character, such as UTF-7 and UTF-8[..]
    Plus je connais de langages, plus j'aime le C.

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    bon quand on regarde de plus près les jours/mois en français on se rend compte qu'il n'y que 'é' et 'û' comme accents. Du coup, plutôt que de mettre en branle l'usine à gaz de la lib maison j'ai fait une petite fonction qui, dans une deuxième passe, remplace les xE9 par des xC3xA9 et xF3 par xC3xBB. Une solution un peu bâtarde mais qui fonctionne et sans sucer de la ressource.

    En tout cas merci d'avoir pris le temps de lire et répondre à ma demande
    Plus je connais de langages, plus j'aime le C.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/03/2015, 10h49
  2. Réponses: 0
    Dernier message: 04/06/2014, 13h41
  3. Changement encoding de UTF-8 à Windows-1252
    Par ririrourou dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 09/05/2011, 09h02
  4. De UTF-8 à windows-1252
    Par franculo_caoulene dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/05/2009, 13h24

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