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 :

Problème encodage fichier


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Points : 124
    Points
    124
    Par défaut Problème encodage fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    StreamReader reader = new StreamReader(@path.pathhtml + "\\Glossaire.htm", Encoding.UTF8);
                        string strline = reader.ReadLine();
                        string strtext = null;
                        strtext = strtext + strline;
     
                        while (strline != null)
                        {
                            strline = reader.ReadLine();
                            strtext = strtext + strline + Environment.NewLine;
                        }
                        reader.Close();
                        byte[] bytes = Encoding.Default.GetBytes(strtext);
                        strtext = Encoding.UTF8.GetString(bytes);
     
                        File.WriteAllText(@path.pathhtml + "\\Glossaire.htm", strtext);
    les accents ne s'affiche pas, un symbole bizarre s'affiche a la place.....

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File.WriteAllText(@path.pathhtml + "\\Glossaire.htm", strtext, Encoding.UTF8);
    Et mets ton Reader dans un using; ce sera plus propre.

    En fait elle fait quoi cette fonction ? Totalement bizarre ?! On dirait une copie de fichier en en lisant ligne à ligne...
    Pourquoi ne pas faire un File.Copy ?

    A+

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Points : 124
    Points
    124
    Par défaut
    c'est un programme pour convertir un .docx en .htm

    et vu que l'encodage est mauvais, ca affiche des caractères bizarres.

    j'ai deja essayé avec ton code c'est la meme chose, l'encodage c'est pour passer sur un serveur web linux (python, django)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    object oMissing = System.Reflection.Missing.Value;
                string[] files = Directory.GetFiles(path.pathglossaire);
                foreach (string file in files)
                    if (file != null && Path.GetExtension(file) == ".docx")
                    {
                        Microsoft.Office.Interop.Word.Application wordapp = new Microsoft.Office.Interop.Word.Application();
                        //wordapp.Visible = false;
                        try
                        {
                            Microsoft.Office.Interop.Word.Document fichier = wordapp.Documents.Open(file);
                            fichier.Activate();
                            fichier.SaveAs2(@path.pathhtml + "\\glossaire", Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, Microsoft.Office.Core.MsoEncoding.msoEncodingUTF7);
                            fichier.Close(false);
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Problème a l'ouverture du fichier");
                        }
                        wordapp.Quit();
                    }
    le code avant l'essai d'encodage correct.... qui devrais deja ètre bon

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Si tu exportes en utf7 il faut lire en utf7 non ?

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Points : 124
    Points
    124
    Par défaut
    désolé pour le retard j'étais en formation.

    le problème c'est que j'ai test tous les encodages possibles et aucun n'est lisible correctement.

    j'ai fait de l'unicode, du UTF8, UTF7, big endian, little endian mais toujours des caractères illisibles.

    je pense que le problème vient de l'encodage de la fonction microsoft office word vu que c'est un encodage MsoEncoding et non Encoding. mais la dessus microsoft met dans sa doc que ca correspond bien a un encoding normal

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Points : 124
    Points
    124
    Par défaut
    alors le problème ne semble pas venir de l'encodage.

    mais plutot de la fonction de conversion de microsoft office, car quand je lis le fichier en bloc note les caractères spéciaux sont deja remplacé par des "?" ou autres symboles

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Points : 124
    Points
    124
    Par défaut
    alors le problème venais de la conversion en HTML, il a mis un encodage (charset) qui était celui par defaut du document word. Donc le passage en argument de l'encodage ne servais rien.

    il suffisait juste de relire le fichier html et de remplacer le charset=..... par charset=UTF-8 dans mon cas

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

Discussions similaires

  1. Problème encodage fichier mac pour rename php
    Par Geoffrey74 dans le forum Langage
    Réponses: 3
    Dernier message: 08/04/2016, 08h02
  2. problème encodage fichier pdf
    Par marco056 dans le forum Général Python
    Réponses: 5
    Dernier message: 12/11/2013, 00h02
  3. Problème encodage fichier CSV
    Par Idleman dans le forum ASP.NET
    Réponses: 4
    Dernier message: 15/10/2012, 07h37
  4. Interop.Word Enregistrer fichier problème encodage image
    Par the java lover dans le forum C#
    Réponses: 1
    Dernier message: 13/01/2010, 10h36
  5. problème encodage des noms de fichiers
    Par kiopa'a dans le forum Général Python
    Réponses: 2
    Dernier message: 26/06/2007, 12h49

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