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 d'encodage pour WriteAllText et WriteAllBytes


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Problème d'encodage pour WriteAllText et WriteAllBytes
    Bonjour à tous !
    Je suis tombé sur un problème que je ne parviens pas à comprendre/résoudre concernant l'écriture dans un fichier en unicode.
    Peut-être pourrez-vous m'éclairer un peu.

    J'ai un texte contenant des accents et des tabulations que je cherche à écrire dans un fichier.

    Je ne rencontre aucun problème avec la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    await File.WriteAllTextAsync(@"c:\deploy\fromstring.csv", builder.ToString(), Encoding.Unicode);
    Par contre, le fichier est complètement cassé avec la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    await File.WriteAllBytesAsync(@"c:\deploy\frombytes.csv", Encoding.Unicode.GetBytes(builder.ToString()));
    Malheureusement, je dois forcément passer par du byte array, car je souhaite en réalité renvoyer ce fichier en retour d'une webapi (d'ailleurs, je pensais à l'origine que le problème venait de la manière dont je renvoyais le fichier, mais après quelques tests, il s'agit plutôt du passage en byte array qui en est la cause).

    Bref, en tout cas je ne comprends pas pourquoi je n'obtiens pas le même résultat avec ces 2 méthodes.

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Ok, j'ai trouvé la solution ... il s'agit du BOM ... J'ai jamais bien compris de quoi il s'agissait, mais enfin, voici les 2 codes équivalents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    await File.WriteAllTextAsync(@"c:\deploy\fromstring.csv", builder.ToString(), Encoding.Unicode);
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    await File.WriteAllBytesAsync(@"c:\deploy\frombytes.csv", Encoding.Unicode.GetBytes("\ufeff" + builder.ToString()));

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

Discussions similaires

  1. [Encodage] Encodage pour régler un problème d'accents
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 17
    Dernier message: 14/01/2012, 22h26
  2. [PHP 5.2] Problème d'encodage pour des exports excel
    Par keep67 dans le forum Langage
    Réponses: 4
    Dernier message: 15/12/2010, 11h52
  3. Problème d'encodage pour l'écriture arabe
    Par jaljal dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 09/09/2010, 18h48
  4. Réponses: 24
    Dernier message: 06/02/2008, 13h59
  5. Réponses: 5
    Dernier message: 27/08/2003, 11h45

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