Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2953 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème d'accents

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'accents

n°1034266
calogerogi​gante
Posté le 04-04-2005 à 13:55:39  profilanswer
 

Dans un petit programme que j'utilise pour tester une liste chaînée simple de personnes, j'ai une option qui me permet d'afficher le contenu de ma liste.
 
Mon problème est le suivant: quand je mets des accents dans un nom, la chaîne grandit d'un espace par accent !!
 
Je m'explique : voici un exemple d'affichage:
 

Code :
  1. 1:     Bernard       AAAAAA    5
  2. 2:       Henry     BBBBBBBB   12
  3. 3:  Bérénice          CCCCC    9
  4. 4:       Louis      DDDDDDD   25


 
Bérénice a deux accents, et le mot se voit affublé de deux expaces à la fin lors de l'affichage.
 
Voici le code qui gère cet affichage:
 

Code :
  1. OuvrirListe(L);
  2. r=1;printw("\n" );
  3. while(!FinListe(L))
  4.     {
  5.     pers=(pPersonne) ElementCourant(L);
  6.     printw("\n %2d : %21s %21s %4d", r, pers->Prenom, pers->Nom, pers->age);
  7.     // bizarre, chaque accent d'un mot ajoute un espace en fin de mot ???
  8.     r++;
  9.     }


 
Le printw est du à la bibliothèque ncurses que j'utilise sous Linux, et qui a la même fonction que printf, mais cela ne m'avait jamais posé ce problème...
 
J'ai vérifié l'encoding de la console et de mon éditeur, tous les deux sont en unicode...
 
Alors, d'où peut provenir ce problème de décalage à l'affichage, manifestement lié à la présence d'accents ???
 
Qui peut m'aider ?

mood
Publicité
Posté le 04-04-2005 à 13:55:39  profilanswer
 

n°1035070
dark86
Posté le 04-04-2005 à 23:14:16  profilanswer
 

les accents caÿ MÄL  
//ca fait nimporte quoi (essaie le "à" il fait tout bugguer :D)

n°1035255
matafan
Posté le 05-04-2005 à 03:39:49  profilanswer
 

printw (comme printf) n'est pas fait pour afficher de l'utf8. Utilise plutôt wprintw (équivalent curses de wprintf).
 
En utf8 les caractères "spéciaux" prennent deux octets (ou plus). J'imagine que printw compte bêtement les octets (à la strlen) pour calculer la largeur de la chaine et aligner l'affichage, ce qui n'est évidemment pas bon en utf8 (ou utf16 ou utf32).

n°1035263
calogerogi​gante
Posté le 05-04-2005 à 07:51:05  profilanswer
 

Enfin quelqu'un qui me donne une réponse de valable !!
Ton explication tient très bien la route, Matafan !!
 
Merci !!
 
Je vais essayer ce soir de ré-encoder le tout en "texte normal" iso, sous mon Linux !
;-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème d'accents

 

Sujets relatifs
Problème sur le bon vieux quickBasic!!![Java][Linux : probleme d'accents]
Probleme accents dans base de donnees mysql...Problème avec les accents en mysql
Probleme d'affichage des accents PHP/XMLProblème d'accents et de couleurs
[jsp/resin] probleme de character set/accents[Java] problème d'accents
Problème accents : conversion BDD DBASE en MYSQL[Java] Problème d'accents dans un ByteArrayOutputStream
Plus de sujets relatifs à : Problème d'accents


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR