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 :

Encodage MS DOS


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Encodage MS DOS
    Bonjour,
    J'ai un petit problème d'encodage pour récupérer le flux d'une fenêtre ms-dos et l'afficher correctement dans un contrôle.

    Mon code fonctionne mais m'affiche des caractères horribles :

    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
     
            Dim my_network_process As New Process
            my_network_process.StartInfo.FileName = "netsh.exe"
     
            Dim _command_string_builder As New StringBuilder
            _command_string_builder.Append("interface ip show address")
     
            With my_network_process.StartInfo
                .Arguments = _command_string_builder.ToString()
                .UseShellExecute = False
                .CreateNoWindow = True
                .RedirectStandardOutput = True
            End With
     
            my_network_process.Start()
            my_network_process.WaitForExit(30000)
            TextBox1.Text = my_network_process.StandardOutput.ReadToEnd()
    Vous n'auriez pas une idée pour éviter ce problème d'affichage ?

    Merci.

  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
    Essaye avant le Start() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my_network_process.StartInfo.StandardOutputEncoding =
          Encoding.GetEncoding("iso-8859-1") ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Solution Nickel
    Merci pour ton aide Graffito !!!

    J'ai un peu modifié ta ligne de code. L' iso-8859-1 n'affichait pas certains caractères. J'ai donc testé 2 solutions qui fonctionne à 100% en me basant sur msdn : http://msdn.microsoft.com/en-us/libr....encoding.aspx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .StandardOutputEncoding = Encoding.GetEncoding(863)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .StandardOutputEncoding = Encoding.GetEncoding(850)
    863 correspond à French Canadian (DOS) et 850 à Western European (DOS)

    J'ai gagné un temps précieux Graffito

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

Discussions similaires

  1. Encodage dos System.in
    Par totoche dans le forum Langage
    Réponses: 3
    Dernier message: 23/06/2011, 14h29
  2. encodage DOS C++
    Par PyNub dans le forum Débuter
    Réponses: 16
    Dernier message: 13/09/2010, 15h30
  3. Encodage de la fenêtre DOS permettant d'exécuter psql
    Par jh0483 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 04/01/2006, 09h49
  4. [Encodage] Charset et console Dos
    Par ToYonos dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 01/02/2005, 12h10
  5. Encodages DOS et Windows
    Par Aramis dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2003, 17h55

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