Caractère bizard en mode console ? [REGLE]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
pastor
Messages : 54
Inscription : sam. 14/avr./2007 22:59

Caractère bizard en mode console ? [REGLE]

Message par pastor »

Re-bonjour,

Une nouvelle question pour un champion :

En mode console, les caractères accentués éê etc.. s'affichent bizarement, ainsi ceci :

Code : Tout sélectionner

PrintN ("Message envoyé !")
donne :

Message envoyù

Pour info, j'utilise un Windows XP.

Laurent
Dernière modification par pastor le lun. 30/juil./2007 13:13, modifié 1 fois.
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

Je pense que la console utilise un code de page ASCII (DOS) plutôt que ANSI (Windows).
En faisant une petite conversion, çà fonctionne !

Code : Tout sélectionner

If OpenConsole()
  ; Conversion ANSI vers OEM (ASCII)
  MonMessageANSI.s = "Message envoyé !"
  MonMessageASCII.s = MonMessageANSI
  CharToOEM_(@MonMessageANSI, @MonMessageASCII)
  ;
  PrintN (MonMessageASCII)
  While Inkey() = "" : Wend
  CloseConsole()
EndIf
pastor
Messages : 54
Inscription : sam. 14/avr./2007 22:59

Message par pastor »

Merci bien Gnozal,

Avec ton code, j'ai fait une petite procédure :

Code : Tout sélectionner

Procedure.s AnsiToAscii(MonMessageANSI.s)
    
    MonMessageASCII.s = MonMessageANSI
    CharToOem_ (@MonMessageANSI, @MonMessageASCII)

    ProcedureReturn MonMessageASCII
  EndProcedure 
Que j'appelle de cette manière :

Code : Tout sélectionner

PrintN (AnsiToAscii("Commande exécutée."))
Bonne journée à tous,

Laurent
Répondre