Caractères accentués dans une application console.

Codes specifiques à Windows
NY152
Messages : 148
Inscription : dim. 14/mai/2006 20:41

Caractères accentués dans une application console.

Message par NY152 »

Bonjour,

Je cherche une méthode pour avoir les bons caractères en retour quand j'écris du texte dans la console. En effet, les caractères accentués et caractères spéciaux renvois des caractères inappropriés.

Quelqu'un aurait une fonction pour renvoyer la chaîne dans le bon format ?

D'avance, merci
.:NY152:.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Caractères accentués dans une application console.

Message par falsam »

De cette maniere (Solution donné par Goznal)

Code : Tout sélectionner

If OpenConsole() 
  ; Conversion ANSI -> OEM (ASCII) 
  MonMessageANSI.s = "Message envoyé !" ; avec accent ...
  MonMessageASCII.s = MonMessageANSI 
  
  CharToOem_(@MonMessageANSI, @MonMessageASCII) 
  
  PrintN(MonMessageASCII) 
  
  While Inkey() = "" : Wend 
  CloseConsole() 
  
EndIf
:idea: Fonctionne sans activation du mode unicode.
Dernière modification par falsam le dim. 06/juil./2014 11:45, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
NY152
Messages : 148
Inscription : dim. 14/mai/2006 20:41

Re: Caractères accentués dans une application console.

Message par NY152 »

J'ai des points d’interrogation à la place du texte ... Je creuserais pour voir ce qui cloche demain
.:NY152:.
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Caractères accentués dans une application console.

Message par venom »

NY152 a écrit :J'ai des points d’interrogation à la place du texte ... Je creuserais pour voir ce qui cloche demain
Dans les options du compilateur, décoche la case "Activer le support unicode" :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Caractères accentués dans une application console.

Message par falsam »

venom a écrit :Dans les options du compilateur, décoche la case "Activer le support unicode" :wink:
J'aurais dit le contraire (Bien entendu j'ai fait un test)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Caractères accentués dans une application console.

Message par nico »

Le code n'est pas le même suivant qu'on compile en ascii ou unicode, il peut fonctionner dans les deux modes mais il faut l'adapter.

Dans le cas de l'unicode, il n'y a pas besoin de fonctions API

Dans le cas de l'ASCII, il semble préférable d'utiliser CharToOemBuff pour des raisons de sécurité d'après Microsoft.
NY152
Messages : 148
Inscription : dim. 14/mai/2006 20:41

Re: Caractères accentués dans une application console.

Message par NY152 »

La fonction est bonne si on décoche unicode.

Peut être qu'une fonction regroupant les 2 modes si l'on peut savoir par le code si on est en unicode ...

Si quelqu'un sait ...
.:NY152:.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Caractères accentués dans une application console.

Message par nico »

Dans l'aide de window:

Thèmes divers

Les objets PureBasic
Numéros et Identifiants (Handles)
Gestion des messages Windows
Pointeurs et accès mémoire
Data (stockage de données)
Commandes de débogage
Les fonctions 'Include'
Les directives du compilateur
Les fonctions du compilateur
L'assembleur en ligne
Construire une DLL
Unicode
Sous Systems
Résidents
Utiliser plusieurs versions de PureBasic
Image
Répondre