[C/C++ et W2K] Charset : 130 devient 233

Charset : 130 devient 233 [C/C++ et W2K] - C++ - Programmation

Marsh Posté le 06-09-2002 à 15:10:45    

En gors j'ai un prog C du genre

Code :
  1. void main(int nbp, char** p)
  2. {
  3. if (nbp == 2)
  4.   {
  5.    // A ce moment là, j'affiche les 'codes ASCII' du parametre p[1]
  6.   }
  7. }


 
En paramètres j'écris "touché" (é = 130).
Dans le programme ça devient un ù (=233) :crazy:
 
C'est quoi ce bordel ?
 
Si dans le programme je fais :
printf("é.\n" ) ou printf("%c.\n", 'é';) donne 'ù'
 
printf("%c.\n", 130) donne bien 'é'
 
Avec VC++ et W2K


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 06-09-2002 à 15:10:45   

Reply

Marsh Posté le 06-09-2002 à 15:12:26    

Normal, la console utilise pas le même jeu de caractère je crois.


Message édité par LetoII le 06-09-2002 à 15:12:35

---------------
Le Tyran
Reply

Marsh Posté le 06-09-2002 à 15:16:10    

letoII a écrit a écrit :

Normal, la console utilise pas le même jeu de caractère je crois.




Pourquoi alors Alt + 130 donne bien 'é'
 
Il existe une solution pour uniformiser ce bordel ?


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
Reply

Marsh Posté le 06-09-2002 à 15:18:29    

ben 130 pour la console et 233 pour windows, tu tape ton code dans une fenêtre windows? ben il te met un 233 pour faire un "é".
Bon c à vérifier mais je pense que ça vient de là.
Pour uniformiser... je sais pas.


---------------
Le Tyran
Reply

Marsh Posté le 06-09-2002 à 15:30:26    

>> Pourquoi alors Alt + 130 donne bien 'é'
 
c'est "l'ancien" jeu de caractères.
 
en unicode, c'est 233. à préfixer avec 0 sous windows : alt + 0233 = é.
 
bref le 'ù' est la bonne valeur (233), mais pas la bonne fonte d'affichage.

Reply

Marsh Posté le 06-09-2002 à 15:34:46    

En passant ...
 
Si tu prends un é en ASCII (130) et si tu passes
par un outil de conversion (UltraEdit32 conversion OEM -> ANSI)ça donne 233 (ANSI)
 
Aurais-tu une conversion implicite faite / à tes outils
de développement ?  :??:  
 

Reply

Marsh Posté le 06-09-2002 à 15:35:40    

http://czyborra.com/charsets/codepages.html
 
MS-DOS code pages
CP437 (DOSLatinUS)
 
é = 0x82 (130)
 
MS-Windows code pages
CP1252 (WinLatin1)
 
é = 0e9 (233)

Reply

Marsh Posté le 08-09-2002 à 04:07:31    

Il y a des APIs pour convertir:

Code :
  1. OemToChar
  2. CharToOem
  3. CharToOemBuff
  4. OemToCharBuff


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed