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

Windows Discussion :

C sous Windows, fichiers en utf8


Sujet :

Windows

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut C sous Windows, fichiers en utf8
    Bonjour

    J'ai fait un petit programme en C sous Linux en essayant de tout faire pour qu'il soit compatible Windows. Mais voilà, un point important auquel je n'avais pas pensé : mon projet est en utf8 et windows ne connait pas ! Ou plutôt je n'ai pas trouvé avec les soft que j'ai essayé : code::block, dev++, borland C, visual C.

    Qui peut me dire comment m'en tirer ?

    Le projet est développé avec les bibliothèques gtk et il est téléchargeable sous http://troumad.info/Linux/essai/pendu.zip . C'est un pendu mathématique.
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il me semble que Visual Studio 2005 compile sans problème les fichiers en UTF-8...
    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.

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Le problème, c'est que lors de l'édition des sources, je n'ai pas mes caractères accentués. J'ai peur de casser mes sources...
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Bizarre.
    J'ai tapé ceci sous UltraEdit, avec sauvegarde en UTF-8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
    
    int main(void)
    {
    	puts("Médinoc");
    	return 0;
    }
    Ouvert avec Visual Studio 2005, l'accent est toujours là...

    Le seul problème d'accent qu'on peut voir sous Windows, c'est celui de la console. En effet, la page de codes de la console n'est pas la même que pour l'affichage normal sous Windows, et c'est assez compliqué à changer...
    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.

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Et pour un programme en GTK, il me suffit alors de tester ce que donne la compilation d'un code illisible alors ?
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    J'ignore comment marche GTK au niveau des pages de codes...

    Tu devrais vérifier que:
    1. Ton éditeur supporte l'UTF-8
    2. Le fichier commence bien par une BOM.
    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.

  7. #7
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Citation Envoyé par Médinoc
    Tu devrais vérifier que Ton éditeur supporte l'UTF-8
    Je ne connais pas les éditeurs de windows... Sous Linux, c'est paramétrable assez facilement pour tous les éditeurs. Si tu en connais un qui fasse en plus environnement de programmation, je suis partant pour essayer !
    Citation Envoyé par Médinoc
    Le fichier commence bien par une BOM.
    C'est quoi cette chose ?
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Visual C++ supporte bien UTF-8, ainsi que Notepad de WinXP, UltraEdit...

    Une BOM, c'est le préfixe d'un fichier texte unicode. Pour de l'UTF-8, il s'agit de 3 octets EF FB BF.

    Pour vérifier la présence de cette BOM, tu peux ouvrir le fichier avec EDIT pour DOS (toujours présent sous WinXP), qui ne supporte PAS unicode (et donc, qui ne cache pas la BOM s'il la trouve) : Elle prendra la forme de trois caractères précédant le début du texte.


    Si la BOM est absente, c'est normal que les éditeurs ne reconnaissent pas le fichier en tant qu'UTF-8. Mais dans ce cas, j'ignore comment rectifier...
    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.

  9. #9
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Dès que j'ai la malchance de tomber sur un PC avec windows, je teste ! Mais est-ce bien reconnu par Linux cet engin ?
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par troumad
    Dès que j'ai la malchance de tomber sur un PC avec windows, je teste ! Mais est-ce bien reconnu par Linux cet engin ?
    Ben...dès que tu as la chance de tomber sur un PC avec Linux, tu testes...non ?
    Exemple :
    - ouvre un fichier en UTF-8 avec hexedit et vois si il y a une BOM ;
    - s'il n'y en a pas, crée une copie du fichier en ajoutant la BOM manquante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( echo -ne "\xef\xbb\xbf" ; cat fichierSansBOM ) > fichierAvecBOM
    et essaye d'ouvrir le nouveau fichier avec ton éditeur favori pour voir s'il a supporté l'ajout.
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  11. #11
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Ben ils n'aiment pas mes éditeurs favoris....
    Je pose la question sur un forum Linux voir si ils connaissent !
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par troumad
    Ben ils n'aiment pas mes éditeurs favoris....
    Je pose la question sur un forum Linux voir si ils connaissent !
    Je viens de me rendre compte d'un truc en lisant en diagonale l'article "Unicode" sur Wikipedia.
    Je cite :
    Citation Envoyé par [url=http://en.wikipedia.org/wiki/Unicode#Storage.2C_transfer.2C_and_processing]Unicode / 3.2 Storage, transfer, and processing[/url]
    The BOM, code point U+FEFF [...] Also, the units FE and FF never appear in UTF-8. The same character converted to UTF-8 becomes the byte sequence EF BB BF.
    Alors que Médinoc écrivait, je cite :
    Citation Envoyé par [url=http://www.developpez.net/forums/showpost.php?p=2019251&postcount=8]Médinoc, un peu plus haut[/url]
    [...]
    Une BOM, c'est le préfixe d'un fichier texte unicode. Pour de l'UTF-8, il s'agit de 3 octets EF FB BF.
    [...]
    Et comme j'ai repris ce qu'écrivait Médinoc, la commande donnée dans mon précédent message était incorrecte (ce que je vais rectifier).

    Mais ne jetons pas la pierre à Médinoc car un autre article nous dit :
    Citation Envoyé par [url=http://en.wikipedia.org/wiki/Byte_Order_Mark]Article 'Byte Order Mark' sur Wikipedia (en)[/url]
    While UTF-8 does not have byte order issues, a BOM encoded in UTF-8 may be used to mark text as UTF-8. Quite a lot of Windows software (including Windows Notepad) adds one to UTF-8 files. However in Unix-like systems (which make heavy use of text files for configuration) this practice is not recommended, as it will interfere with correct processing of important codes such as the hash-bang at the start of an interpreted script. It may also interfere with source for programming languages that don't recognise it. For example, gcc reports stray characters at the beginning of a source file, and in PHP, if output buffering is disabled, it has the subtle effect of causing the page to start being sent to the browser, preventing custom headers from being specified by the PHP script.
    Voilà-voilà...enfin, bref, c'est mal parti pour la compatibilité totale...
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  13. #13
    Membre actif Avatar de mobscene
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 331
    Points : 234
    Points
    234
    Par défaut
    Si les accents foirent c'est que l'éditeur que tu utilise ne prend pas en charge l'utf-8 , pour ce qui est de sont support au niveau de l'OS 2000, XP tourne en UTF-16 la conversion est faite de façon transparente. Tu prend un programme C simple qui affiche "é" sous Windows en mode console sa pose problème la console utilisant un encode OEM iso , en mode graphique pas de problème windows convertie "é" d'iso ( par défaut ) en UTF-16 en mode console aussi ilm convertie .

    Le problème vient de ton editeur ou de ton IDE, en tout vas Visual studio n'a pas ce genre de problème
    Everybody have in their the potential to be their own god : Marilyn Manson

  14. #14
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Citation Envoyé par mobscene
    en tout vas Visual studio n'a pas ce genre de problème
    Tu veux dire que le visual studio de MicroSoft n'a pas ce problème ???!!!???
    Tu as testé quelle version ? AU boulot, on en a une pas toute neuve et elle est incapable de me lire mes fichiers.

    Sous Linux, le moindre petit éditeur de fichiers, on peut trouver un paramètre pour lui dire quel encodage utiliser. Sous windows, je n'ai rien trouvé
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  15. #15
    Membre actif Avatar de mobscene
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 331
    Points : 234
    Points
    234
    Par défaut
    J'utilise Visual Studio 2005

    Sinon une idée me vient si tes fichiers ont été édité sous linux donc leur fin de ligne re "\r" essaie de les passer en "\r\n" sous windows avec notepad2 puis ouvre les avec ton IDE.

    Je sais pas si c'est sa le problème mais sa ne coute rien d'essayer
    Everybody have in their the potential to be their own god : Marilyn Manson

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Visual studio supporte les deux types de retour à la ligne.
    À mon avis, le problème sous Windows vient de l'absence de BOM des fichiers UTF-8 de Linux...
    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. [TP] Création fichier texte lisible sous Windows
    Par frechy dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 02/03/2006, 20h42
  2. gestion de fichier sous windows en posix
    Par fan² dans le forum Réseau
    Réponses: 11
    Dernier message: 07/12/2005, 18h40
  3. Changer les droits d'un fichier sous windows
    Par lnikolanta dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 26/09/2005, 17h03
  4. [langage]parcours fichier txt en perl sous windows
    Par stef74 dans le forum Langage
    Réponses: 12
    Dernier message: 23/06/2005, 16h39
  5. Afficher un fichier binaire sous Windows
    Par Atomikx dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 14/12/2004, 00h29

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