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 :

Quel est l'encodage d'une Text Box - Visual Basic 2012 ? Gros problème avec les accents.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut Quel est l'encodage d'une Text Box - Visual Basic 2012 ? Gros problème avec les accents.
    Bonsoir,

    J'ai récupéré un fichier codé en ANSI avec les accents réalisé depuis une application sous Visual Basic 6 et Windows XP pro. Chaque fois que j'affiche un de ces fichiers sur visual Basic 2012 et windwos 7, 8 ou 10 sur un TextBox les accents sont tous remplacé par un losange noire avec un point d'interrogation.

    Notepad ++ et bloc-note ne lisent pas les accents de ce fichier ANSI. J'ai essayé les différents encodage proposé sur notepad++ sans succès (accents remplacé par des caractères hétéroclites).

    J'ai changé plusieurs polices (y compris par le triviale Arial) de ces textbox sans succès. Toujours des accents remplacé par des caractères hétéroclites).

    Or que Visual Basic 6 que j'ai sous Win 10 lit parfaitement bien ces accents dans ces textbox !

    De là à programmer un convertisseur ? OK mais quid ! La je sèche !

    Une idée ?

    A vous lire

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Sauf horreur de ma part, c'est de l'Unicode par défaut. Ceci dit, les différentes classes qui permettent de lire et d'écrire des fichiers textes ont une ou plusieurs méthodes surchargées qui permettent de modifier la méthode d'encodage, en fonction de la classe Encoding.

  3. #3
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonjour

    Merci pour l'info ! Tout est dit Class Encoding ! Le topic de microsoft explique aussi ma question suivante que je n'ai pas posée : les caractères cyriliques !
    Reste à mettre en forme !

    Encore merci et a +

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    tu as un bouton résolu en bas de cette page, ca me permet de ne pas ouvrir un topic pour rien ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonsoir,

    Les choses s'éclaircissent ! Le programme VB 2012 n'est pas en cause, mon code :

    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
    29
     Sub lectureFichier(ByVal fichier As String)
     
            Try
                ' Création d'une instance de StreamReader pour permettre la lecture du fichier recherché dans l'explorateur de fichiers
                Dim monStreamReader As StreamReader = New StreamReader(ToolStripTextBox1.Text, System.Text.Encoding.Default)  '  Default = unicode  
                Dim n, m, q, qq, qqq, yy As Integer
     
                'Lecture de 25 lignes du fichier séquentiel et affichage de chacune à sa place dans textbox
                Do
                    n = n + 1
                    Ligne_Lecture(n) = monStreamReader.ReadLine()
                Loop Until Ligne_Lecture(n) Is Nothing
     
                'Fermeture du StreamReader (attention très important)
                monStreamReader.Close()
     
                TextBoxNum.Text = Ligne_Lecture(1)
                TextBoxName.Text = Ligne_Lecture(2)
                RichTextBoxName.Text = Ligne_Lecture(2)
     
     
            Catch ex As Exception
     
                '    'Code exécuté en cas d'exception
                MsgBox("Une erreur est survenue au cours de la lecture !")
     
            End Try
     
    End Sub
    fonctionne parfaitement et les accents sortent nickel lors de saisie de nouveaux texte avec le programme et relecture des mêmes fichiers.

    Par contre le vieux fichier que je veut lire pose problème avec VB2012 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    1
    Ralf Kr�tschmer
    2001
    3 Price
    Problem-Forum
    Avec le caractère � représenté par un code 65533 dans l'exemple = ö !

    Donc il faut que je construise un convertisseur pour récupérer tous les accents ö ô ê é è î Ü ù etc... la liste est longue avec les danois, russes et autres européens ... on oubli le chinois !

    Mes fichiers étant séquentiel cela ne doit pas être très compliqué.

    Comment récupérer le code des caractères défaillant dans mes vieux fichiers et par quoi les remplacer pour être de l'Unicode ? Je présume qu'il y a des tables de conversion.

    Par la suite je vais tout compiler (500 000 fichiers) dans une base SQL mais avant il faut qu'elle soit alimenter par du propre.

    N'étant pas un spécialiste l'Unicode est-il la bonne solution pour la base SQL (sachant entre autre que j'ai aussi des caractères cyrilliques)

    Merci pour vos suggestions.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    unicode n'est pas un encodage, c'est un jeu de caractères utilisé par beaucoup d'encodages

    quand on lit un fichier, ce sont des octets qui sont lus, et pour transformer ces octets en string, soit on ne précise rien et le framework doit surement utiliser l'encodage par défaut de windows
    mais on peut aussi préciser quel encodage on veut utiliser pour la lecture

    après si tu ne connais pas l'encodage utilisé dans le fichier, ce n'est pas ici qu'il faut demander de l'aide, mais au fournisseur du fichier

    tu peux aussi tester plusieurs encodages pour voir si un fonctionne, comme utf8, utf16, utf32, ansi et les dizaines d'encodages qui sont connus sous la forme iso-xxxx-x windows-xxxx etc...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/07/2010, 15h36
  2. Réponses: 2
    Dernier message: 19/06/2009, 16h39
  3. [MySQL] Problème avec les accent lors d'une recherche dans ma base de donnée
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/06/2009, 14h08
  4. rendre invisible une texte box si elle est vide
    Par kuhnden dans le forum IHM
    Réponses: 4
    Dernier message: 09/03/2006, 01h55
  5. [HTML][Encodage] Problèmes avec les accents...
    Par eraim dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 26/05/2004, 10h11

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