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 :

Conversion vers l'UTF-8 ne se passe pas comme il faudrait


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut Conversion vers l'UTF-8 ne se passe pas comme il faudrait
    Salut !

    J'essaye de lire contenu d'un fichier texte (*.txt). Ce fichier contient des caractères spéciaux comme des accents,...
    Avec le code suivant, l'encodage des caractères ne se passe pas bien... Par exemple, les accents aigus deviennent des points d'interrogation !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] lines;
    lines = System.IO.File.ReadAllLines(nomfich, ASCIIEncoding.UTF8);
    Par contre, quand j'ouvre le fichier avec notepad++ et que je demande une conversion vers l'UTF-8, là tout se passe bien !
    A votre avis, qu'est-ce qui cloche ?

    Merci !

  2. #2
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    En fait, tout se passe bien. La méthode ReadAllLines ne fait pas de conversion. Préciser l'encodage permet de préciser l'encodage dans lequel est le fichier, et non un encodage cible. Et ici, le fichier n'est tout simplement pas en UTF8.

    C'est aussi pourquoi le convertir préalablement via notepad++ résoud le problème.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    Okay, merci pour ta réponse !
    Et pour faire une conversion lors de la lecture du contenu du fichier, il y a une méthode à suivre ?

  4. #4
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Une string en C#, c'est une chaîne de caractères encodée en unicode (en UTF-16. pour être précis).

    Pour faire la conversion, il faut simplement préciser l'encocage de la source. Pour du français, c'est généralement du "Windows-1252" (encoade windows) ou "iso-8859-15" (latin 9).

    Et donc, pour lire un fichier, il suffit de faire, par exemple :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    lines = System.IO.File.ReadAllLines(nomfich, GetEncoding("iso-8859-15");

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    Ah bon sang, c'était aussi simple que ça...

    Merci à toi !

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/04/2018, 14h58
  2. Mission qui ne se passe pas comme prévu
    Par gueulederack dans le forum Emploi
    Réponses: 17
    Dernier message: 10/11/2011, 17h00
  3. Réponses: 5
    Dernier message: 21/12/2006, 19h28
  4. Conversion du charset cyrillique vers l'UTF-8
    Par pach dans le forum Oracle
    Réponses: 2
    Dernier message: 12/01/2006, 13h47
  5. Conversion vers UTF-8
    Par magnus2005 dans le forum Langage
    Réponses: 1
    Dernier message: 26/10/2005, 10h12

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