On m'a fait remarquer un bug dans minipascal, et je n'arrive pas à trouver de solution...
Le problème est le suivant :
Lorsqu'on utilise des chaines de caractères contenant des caractères spéciaux : é è à et autres spécificités de la langue française j'ai le problème suivant :
Si j'affiche cette chaine sur une interface win32 (par exemple sur un bouton) tout va bien...
Si j'affiche cette chaine dans un programme console, j'ai des caractères qui ne correspondent pas (le é devient un U majuscule avec un accent, ou plus exactement le $00E9 = é en unicode donne $E9 = Ú en dos)...
On peut evidemment jongler à coup de chr(la_valeur_dos_de_mon_caractère) si on veut avoir les caractères désirés, mais c'est lourd à faire...
Pour vous mettre sur la voie et à titre de renseignement avant que vous ne répondiez : minipascal fournit au compilateur le code source en cours, enregistré sur le disque dur, et pas le texte visible dans la fenetre d'edition...
Or par défaut, ce code source utilise le jeux de caractères unicode (codé sur 4 bytes) ...
Les programmes console affichent leur chaines en utilisant un jeu de caractères dos (codé sur deux bytes) ...
Et dans ces deux jeux de caractères, les accentués ne correspondent pas...
J'ai bien tenté de saisir dès le début (à l'ecriture du programme, dans minipascal) en utilisant de l'oem à l'affichage, mais celà entraine :
-un problème clavier : les caractères affichés n'étant pas ceux que je désire
-le repport du défaut sur les programmes win32
Vais-je devoir demander (option à cocher) avant ouverture d'un fichier si on travaille en DEFAULT_CHARSET ou OEM_CHARSET et si c'est le cas, comment régler le problème du clavier...
Autant de soucis non encore résolus...
Je vous demande des avis d'ordre général sur la démarche à suivre, si vous avez une idée...
Merci
Clandestino
Partager