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

Windows Forms Discussion :

[VB2005] serialport->Transformation de caractères accentués


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut [VB2005] serialport->Transformation de caractères accentués
    Bonjour à tous,

    Voici ma config:
    J'ai relié le port COM1 au port COM2 par un cable série croisé, ce qui me permet de visualiser ce que j'envoie sur le port COM1 gràce à un logiciel de récupération de donnée (docklight).

    Sur le port COM1, je bascule entre plusieurs méthodes pour écrire cette la phrase "Bonjour à toi Jéjé.":
    1 - J'ai installé une imprimante générique texte, et je fait imprimer depuis le bloc notes -> CA MARCHE !
    2 - Je passe par l'hyperterminal -> CA MARCHE (mais dans la zone texte de l'hyperterminal, il me remplace les à par Ô et les é par ù majuscule... Pas grave).
    3 - Je passe par mon application -> CA NE MARCHE PAS (il me renvoie toujours "Bonjour ? toi J?j?.").

    Pourtant, je fait simplement:
    ...SerialPort1.WriteLine(textbox1.text)
    et aussi, pour tester:
    ...SerialPort1.WriteLine("Bonjour à toi Jéjé.")
    et carrément:
    ...SerialPort1.WriteLine("Bonjour à toi J" & convert.toChar(233) &"jé.")

    Mais rien à faire, il me remplace toujours les caractères propres à la table Française par le code ASCII 063.
    (j'ai essayé de brancher une imprimante sur le COM1, et le résultat est le même)

    J'ai testé avec:
    ...SerialPort1.Encoding = System.Text.Encoding.(tous)
    mais j'ai eu toutes sortes de résultats sauf le bon (unicode s'en rapproche le plus, mais il ajoute NULL entre chaque caractères )

    Qu'est ce qu'il se passe ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Tout d'abord pour le code de caractère francais windows c'est le 1250, en VB pour recuperer la bonne table de caractère ca donne un truc du genre :
    - system.Text.Encoding.GetEncoding(1250)

    Ensuite si ca fonctionne avec ton imprimante et ton hyperterminal c'est que ca fonctionne et que tout est bien envoyé.

    A mon avis c'est ton application qui ne sais pas utilise la bonne table de caractère, ou alors j'ai pas compris ton problème.

  3. #3
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour Tnopy,

    Il y a du changement positif.
    En fait, system.Text.Encoding.GetEncoding(1250) ne change rien (je l'ai mis avant le Writeline et dans le form load).

    Par contre, SerialPort1.Encoding = System.Text.Encoding.GetEncoding(1250) a de l'effet:
    Il met bien les é, par contre, les è et ê donnent: e.. Et à donne a.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Tu as raison en fait le codepage western europe c'est 1252 ^^

    Ca fonctionnera avec 1252, je viens de le tester, 1250 c'est central europe.
    Neanmoins je te conseil de mettre les codepages non seulement en ecriture (sur ton COM1)mais aussi en lecture (en reception de COM2).

  5. #5
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Impeccable, ça marche !!!
    (par contre, je n'ai pas la main de l'autre coté, ce sera une imprimante... La config actuelle est juste pour les tests)

    Merci mille fois, je suis dessus depuis lundi quand même...

    Juste comme ça.. UTF8, c'est quel encodage ?

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

Discussions similaires

  1. [MySQL] Transformation des caractères accentués dans une table
    Par betadev dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/01/2012, 11h58
  2. Transformation des caractères accentués
    Par stounouslous dans le forum NetBeans
    Réponses: 9
    Dernier message: 29/09/2010, 17h14
  3. [SQL] caractère accentués transformés en é
    Par guian dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 20/08/2008, 11h54
  4. Réponses: 4
    Dernier message: 10/04/2007, 16h27
  5. Caractères accentués transformés
    Par Anduriel dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2006, 18h47

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