Première chose, est-ce que tu travailles sous Linux ou sous DOS ?
Réponse longue :
Ensuite, étant donné qu'en ASCII standard le bit7 (celui de poids fort, de 0 à 7) est utilisé comme bit de parité pour les télétransmissions, seuls les 128 premiers caractères sont standard (et encore, les caractères de contrôle et le 127 ont tendance à être implémentés de différentes manières en fonction des plateformes).
Ce qui veut dire qu'utiliser les caractères au dessus de 127 pour dessiner des cadres est une très mauvaise idée ! Du temps du DOS, tout le monde avait le même problème.
Les caractères que tu recherches sont ceux définis par IBM pour son PC, en tant que jeu par défaut, et définis à la quatre-cent-trente-septième page de leurs spécifications. Donc sous DOS: C:\> chcp 437 ("Change CodePage"). A titre d'info, la page de code utilisée en Europe est la 850, et bon nombres des « angles » ont été remplacés par les caractères accentués.
Maintenant, lorsque tu mets une carte graphique sous tension, comme elle est prévue pour gérer un mode texte (ne serait-ce que pour afficher l'état de l'autotest à l'allumage de ta machine), elle est livrée avec un jeu de caractères bitmap VGA standard, en général mappant celui d'IBM.
Sous Linux, ensuite, tu as deux choix:
Soit tu cherches à afficher ton programme en mode texte. Dans ce cas-là, il faut recharger un nouveau bitmap dans la carte graphique. Jette un oeil à ce qui se trouve dans /usr/lib/kbd/consolefonts et utilise setfont pour effectuer l'action en question, soit tu travailles sous X-Window et il faut demander au terminal d'utiliser une fonte fixe qui produit ces symboles.
Eventuellement, tu peux générer un .ps à l'aide de a2ps pipé sur la sortie de ton programme. Avec les bonnes options, tu peux lui demander d'utiliser la cp437 pour faire son rendu. Ensuite il passera partout puisque c'est un fichier « graphique » ! Vois aussi du coté de recode.
Tu peux aussi utiliser l'UTF-8 ou l'Unicode si tes périphs de sortie les reconnaissent.
Réponse courte :
Utilise comme tout le monde les "+","|" et "-" pour faire tes cadres. C'est pratiquement aussi propre et tu es alors sûr que ton programme fonctionnera sur tous les ordinateurs et terminaux du monde.
# Bienvenue dans le monde merveilleux des charsets.
Posté par Obsidian . En réponse au message Caractères imprimables qui passent pas. Évalué à 5.
Réponse longue :
Ensuite, étant donné qu'en ASCII standard le bit7 (celui de poids fort, de 0 à 7) est utilisé comme bit de parité pour les télétransmissions, seuls les 128 premiers caractères sont standard (et encore, les caractères de contrôle et le 127 ont tendance à être implémentés de différentes manières en fonction des plateformes).
Ce qui veut dire qu'utiliser les caractères au dessus de 127 pour dessiner des cadres est une très mauvaise idée ! Du temps du DOS, tout le monde avait le même problème.
Les caractères que tu recherches sont ceux définis par IBM pour son PC, en tant que jeu par défaut, et définis à la quatre-cent-trente-septième page de leurs spécifications. Donc sous DOS: C:\> chcp 437 ("Change CodePage"). A titre d'info, la page de code utilisée en Europe est la 850, et bon nombres des « angles » ont été remplacés par les caractères accentués.
Maintenant, lorsque tu mets une carte graphique sous tension, comme elle est prévue pour gérer un mode texte (ne serait-ce que pour afficher l'état de l'autotest à l'allumage de ta machine), elle est livrée avec un jeu de caractères bitmap VGA standard, en général mappant celui d'IBM.
Sous Linux, ensuite, tu as deux choix:
Soit tu cherches à afficher ton programme en mode texte. Dans ce cas-là, il faut recharger un nouveau bitmap dans la carte graphique. Jette un oeil à ce qui se trouve dans /usr/lib/kbd/consolefonts et utilise setfont pour effectuer l'action en question, soit tu travailles sous X-Window et il faut demander au terminal d'utiliser une fonte fixe qui produit ces symboles.
Eventuellement, tu peux générer un .ps à l'aide de a2ps pipé sur la sortie de ton programme. Avec les bonnes options, tu peux lui demander d'utiliser la cp437 pour faire son rendu. Ensuite il passera partout puisque c'est un fichier « graphique » ! Vois aussi du coté de recode.
Tu peux aussi utiliser l'UTF-8 ou l'Unicode si tes périphs de sortie les reconnaissent.
Réponse courte :
Utilise comme tout le monde les "+","|" et "-" pour faire tes cadres. C'est pratiquement aussi propre et tu es alors sûr que ton programme fonctionnera sur tous les ordinateurs et terminaux du monde.