Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre du Club
    Inscrit en
    mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 130
    Points : 53
    Points
    53

    Par défaut Problème avec les caractères accentués (et autres cédilles etc)

    Je fais un programme où je traite des textes écrits en français. Je suis sous windows.

    Mon problème, c'est que quand je lis dans le source, puis que j'écris dans le fichier output, je retrouve certains caractères remplacés par des codes abscons.

    D'autre part, la sortie dans la console de GHCi donne encore autre chose.



    Le code :
    Code :
    1
    2
    3
    4
    5
    main :: IO ()
    main = do
        fileData <- readFile "sandbox_input_texte_accentue.txt"
        putStrLn fileData
        writeFile "sandbox_output_texte_accentue.txt" $ show fileData
    le fichier "sandbox_input_texte_accentue.txt"
    Code :
    1
    2
    3
    4
    5
    test: youyou
    sandbox: haha
    àâéèêëäéïîöôùûç€
    &@µ
    et prévoir les mêems en majuscules
    le fichier "sandbox_output_texte_accentue.txt"
    Code :
    "\239\187\191test: youyou\nsandbox: haha\n\195\160\195\162\195\169\195\168\195\170\195\171\195\164\195\169\195\175\195\174\195\182\195\180\195\185\195\187\195\167\226\8218\172\n&@\194\181\net pr\195\169voir les m\195\170ems en majuscules"
    la sortie dans GHCi
    Code :
    1
    2
    3
    4
    5
    test: youyou
    sandbox: haha
    Ã*âéèêëäéïîöôùûç€
    &@µ
    et prévoir les mêems en majuscules
    runHaskell ne renvoie d'ailleurs pas la même chose :
    Code :
    "\180\9559\9488test: youyou\nsandbox: haha\n\9500\225\9500\243\9500\174\9500\191\9500\172\9500\189\9500\241\9500\174\9500\187\9500\171\9500\194\9500\9508\9500\9571\9500\9559\9500\186\212\233\188\n&@\9516\193\net pr\9500\174voir les m\9500\172ems en majuscules"
    D'où les questions :
    1. quels sont donc ces 3 caractères qui apparaissent en tête de mon fichier ???
    2. comment avoir en sortie la même chose qu'en entrée ?

    merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 130
    Points : 53
    Points
    53

    Par défaut

    A noter que le code donne le bon résultat sans le show,
    Code :
    1
    2
    3
    4
    5
    main :: IO ()
    main = do
        fileData <- readFile "sandbox_input_texte_accentue.txt"
        putStrLn fileData
        writeFile "sandbox_output_texte_accentue.txt" fileData
    mais j'ai besoin du show (pas dans cet exemple bien sûr, mais par ailleurs). J'ai le même problème de codage exposé ci-dessus avec la fonction encodeFile de Data.Object.Yaml.

    Donc enlever le show n'est pas la façon par laquelle je veux traiter le problème.

  3. #3
    Nouveau Membre du Club
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 37
    Points : 30
    Points
    30

    Par défaut

    Citation Envoyé par james-mi Voir le message
    A noter que le code donne le bon résultat sans le show,
    Code :
    1
    2
    3
    4
    5
    main :: IO ()
    main = do
        fileData <- readFile "sandbox_input_texte_accentue.txt"
        putStrLn fileData
        writeFile "sandbox_output_texte_accentue.txt" fileData
    mais j'ai besoin du show (pas dans cet exemple bien sûr, mais par ailleurs). J'ai le même problème de codage exposé ci-dessus avec la fonction encodeFile de Data.Object.Yaml.

    Donc enlever le show n'est pas la façon par laquelle je veux traiter le problème.

    Quelle version de ghc ?

  4. #4
    Membre du Club
    Inscrit en
    mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 130
    Points : 53
    Points
    53

    Par défaut

    Citation Envoyé par viro Voir le message
    Quelle version de ghc ?
    version 6.12.3,
    récupéré récemment par le biais de la Haskell platform version windows

    ça peut jouer ?

  5. #5
    Nouveau Membre du Club
    Profil pro
    Inscrit en
    octobre 2002
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2002
    Messages : 37
    Points : 30
    Points
    30

    Par défaut

    Citation Envoyé par james-mi Voir le message
    version 6.12.3,
    récupéré récemment par le biais de la Haskell platform version windows

    ça peut jouer ?
    Oui. Depuis la version 6.12, GHC a un nouveau système de gestion de fichiers qui prend en compte l'encodage des entrées et des sorties.

    Regarde la doc sur hSetEncoding

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •