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

VB.NET Discussion :

Problème avec caractères spéciaux dans STRING


Sujet :

VB.NET

  1. #1
    Membre du Club Avatar de sibama
    Profil pro
    Inscrit en
    Août 2008
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 147
    Points : 55
    Points
    55
    Par défaut Problème avec caractères spéciaux dans STRING
    Bonjour,

    Je dois travailler sur des fichiers texte issus de vieilles applis DOS où toutes les voyelles avec accents sont remplacés par des caractères de "substitution". Après lecture de ces fichiers par un streamreader, les lignes qui les constituent sont classée dans des string sur lesquelles mon appli travaille.

    Lorsque je regarde avec un espion ces string, tous les caractères avec accent sont remplacés par �.

    Quand je travaille sur les mots contenus dans ces string, les caractères � s'ils sont dans un mot (du type "gère" qui est traduit en "gŠre" dans le fichier texte et affiché "g�re" par l'espion) ne posent pas de problème.

    Par contre quand je travaille sur un caractère isolé � (du type "à" qui est traduit en "…" dans le fichier texte et affiché "�" par l'espion), le code suivant ne marche pas.
    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
    21
    22
    23
    24
    25
    26
    27
    28
       Private Function SeparerTexte(ByVal Texte As String) As ArrayList
     
            ' Sépare le texte en un Arraylist d'éléments simples à comparer
     
            Dim Tableau As New ArrayList
     
            While Texte.Length > 0
                ' Décomposition du texte, le caractère " " sert de séparateur (on cherche aussi à élimiber "§" qui sert d'indicateur de retour à la ligne)
                While Texte.StartsWith(" ")
                    Tableau.Add(" ")
                    Texte = Texte.Substring(1)
                End While
                If Texte.Length > 0 Then
                    Tableau.Add("")
                    While Texte.Length > 0 AndAlso Not Texte.StartsWith(" ")
                        If Texte.StartsWith("§") Then
                            Tableau.Add("")
                        Else
                            Tableau(Tableau.Count - 1) &= Texte.Substring(0, 1)
                        End If
                        Texte = Texte.Substring(1)
                    End While
                End If
            End While
     
            Return Tableau
     
        End Function
    (Le but de ce code est de créer un arraylist avec les mots/caractères uniques séparés par des espaces en conservant les espaces comme éléments de Tableau).

    Est-ce que quelqu'un à déjà eu ce genre de problème?

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    On peut définir l'encoding lors de l'utilisation du StreamReader, par exemple (en C#) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fileStream = new StreamReader("MyTestFile.txt",Encoding.GetEncoding(1252)) ;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fileStream = new StreamReader("MyTestFile.txt", Encoding.GetEncoding("iso-8859-1")) ;

  3. #3
    Membre du Club Avatar de sibama
    Profil pro
    Inscrit en
    Août 2008
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 147
    Points : 55
    Points
    55
    Par défaut
    Super, un ajout de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MonStreamReader As New StreamReader(NomFichier, Encoding.Default)
    et ça remarche comme je veux.

    Merci beaucoup Graffito.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/01/2010, 17h02
  2. Lien dynamique avec caractères spéciaux dans un mailto
    Par sd dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/07/2008, 11h41
  3. problème de caractères spéciaux dans formulaire
    Par jules_29 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/12/2007, 10h15
  4. Problème avec caractère spéciaux
    Par zooffy dans le forum ASP
    Réponses: 5
    Dernier message: 28/02/2007, 10h06
  5. [MySQL] Problèmes avec caractères spéciaux
    Par brokengillou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/04/2006, 17h02

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