Char

Jeux de caractères

ASCII et vous recevrez …

CONSEIL: N’utilisez pas de caractères spéciaux (autres que des lettres, des chiffres ou des signes de ponctuation communs) à moins de connaître les normes et de les utiliser!

Le jeu de caractères standard pour les ordinateurs est traditionnellement le code ASCII (American Standard Code for Information Interchange). (En fait, la version standard actuelle est appelée “US-ASCII”, ce qui la distingue probablement des ASCII non américains.) Ce groupe de caractères est numéroté de 0 à 127 et comprend les lettres majuscules et minuscules, les chiffres et la ponctuation, ainsi que certains caractères de contrôle tels que les onglets et les sauts de ligne. Aucune disposition n’est prévue en ASCII pour les caractères étrangers ou les symboles spécialisés. Par conséquent, divers ensembles dits “ASCII étendus” (un terme impropre puisque ces extensions ne font pas partie de la norme ASCII) ont été développés pour fournir ces éléments. Windows, le Mac et le PC IBM ‘ s mode texte ont différents ensembles de caractères étendus (et les versions de ceux-ci dans différents pays ont des versions différentes). Comme ils sont largement divergents les uns des autres, les seuls caractères “sûrs” à transmettre et à compter sur l’utilisateur recevant correctement ont traditionnellement été les caractères “7 bits” 0-127.

(Eh bien, d’ habitudeles caractères ASCII à 7 bits sont “sûrs”, mais il y a eu quelques exceptions en raison du traitement non standard des jeux de caractères de divers modèles informatiques. Par exemple, les anciens ordinateurs Commodore PET, 64 et 128 utilisaient un étrange ensemble “PET-ASCII” avec des lettres minuscules où majuscules et lettres majuscules devaient se trouver ailleurs, avec différents caractères graphiques dans la section minuscule normale. Les premiers ordinateurs Apple II n’avaient aucune lettre minuscule, et au lieu de faire le bon sens en mettant ces caractères en correspondance avec leurs lettres majuscules correspondantes, ils s’affichaient au contraire comme des ordures aléatoires. Mais, à partir de maintenant, la plupart des ordinateurs d’usage courant obtiennent la plage ASCII d’origine correctement,

Cependant, le Web est configuré pour prendre en charge un plus large éventail de caractères. Avant HTML 4.0, le jeu de caractères “standard” pour HTML était ISO 8859-1 (parfois appelé ISO Latin-1), un jeu de caractères étendu avec deux fois plus de caractères que ASCII. En dehors de la politiquement correcte internationale, cependant, les nouvelles versions de HTML n’ont pas de jeu de caractères par défaut afin de ne pas favoriser les langues (principalement d’Europe occidentale) supportées par l’ISO 8859-1 par rapport à celles qui ne le sont pas. Par conséquent, un paramètre “charset” explicite est requis dans l’en-tête de type de contenu HTTP (bien que les standards de protocole HTTP eux-mêmes disent encore que “ISO-8859-1” est la valeur par défaut pour cela). Le jeu de caractères Windows est la plupart du temps identique au jeu de caractères ISO, mais le jeu Macintosh est très différent, Vous devez donc savoir si votre programme d’édition insère des caractères conformément à la norme ou dans un jeu de caractères propriétaire propre à une plate-forme. (Ces derniers temps, il devient de plus en plus populaire d’utiliser UTF-8, un jeu de caractères différent de ceux plus anciens qui supporte toute la gamme Unicode, ceci sera discuté plus tard.) Ou vous pouvez apprendre les numéros de caractères des personnages vous voulez et insérez-les avec des séquences d’échappement en commençant par une esperluette, commeÈpour le caractère # 200 (È). (N’oubliez pas le point-virgule (;) à la fin de la séquence d’échappement!) Ou, pour certains caractères, vous pouvez utiliser des “noms d’entités” comme é pour un “e” avec un accent aigu (é), mais ceux-ci ne sont pas toujours aussi largement supporté sur tous les navigateurs, les numéros de caractères sont donc “plus sûrs” si vous les connaissez. (Voir les liens ci-dessous pour certaines sources de listes de numéros de caractères.) Notez que, selon les normes HTML, les références numériques sont toujours supposées être dans le jeu de caractères ISO 8859-1 (ou son surensemble, Unicode , dont je parle plus bas) , même si le codage de caractères est spécifié comme quelque chose de différent. Les performances réelles des navigateurs peuvent varier, malheureusement.

Certains “noms d’entités” que vous devez utiliser sont &amp; des esperluettes (&) utilisées comme caractères littéraux dans votre texte, de sorte qu’ils ne sont pas interprétés comme faisant partie d’un code d’entité de caractère, &lt;et &gt;pour les moins (<) et plus grand- que les signes (>), de sorte qu’ils ne sont pas interprétés comme faisant partie des balises HTML. Certaines personnes remplacent également le guillemet (“) par &quot;, mais ce n’est pas nécessaire, sauf dans la valeur d’attribut citée d’un point, c’est le seul endroit où le guillemet a une signification qui doit être protégée Dans le corps du texte, les guillemets sont inoffensifs. Autrement dit, les guillemets simples et doubles ASCII standard , «et», sont inoffensifs … ces «citations intelligentes» non conventionnelles de traitement de texte sont une autre histoire!)

Remarque: Une instance particulière, souvent négligée où vous devez utiliser un nom d’entité au lieu du caractère brut est pour les esperluettes trouvées dans les URL, généralement dans la chaîne de paramètre passée à un script CGI. Il est courant d’utiliser une série de paramètres séparés par des esperluettes (par exemple, stuff.cgi?this=1&that=2), dérivant de l’utilisation standard de cette syntaxe par les navigateurs générant des requêtes à partir d’un formulaire Web. Malheureusement, cette syntaxe n’est pas appropriée dans un document HTML, et certains navigateurs ont été connus pour interpréter des parties de telles chaînes de caractères en tant que caractères spéciaux incorporés. En particulier, la séquence &section=, souvent trouvée dans la chaîne de paramètres pour une requête de base de données, est parfois interprétée comme contenant l’entité&sect;, un “caractère d’en-tête de section” (§). Pour éviter cela, remplacez & amp; partout où cela se produit, ou reprogrammez vos scripts CGI pour accepter un séparateur de paramètres «plus sûr», comme un point-virgule. (Un point-virgule peut toutefois poser problème si vous utilisez ces URL dans les balises d’actualisation META , car le point-virgule est un séparateur réservé dans de tels contextes.)

Comme note finale, lorsque vous avez l’ intention d’ une séquence esperluette à interpréter comme une référence de caractère, assurez – vous d’inclure le point – virgule final. Ce n’est &amp;pas juste &amp. Il existe des règles de syntaxe compliquées concernant le moment où le point-virgule est obligatoire ou non, et un comportement de correction d’erreur encore plus complexe pour les cas où les règles de syntaxe ne sont pas correctement suivies (une telle tentative de correction d’erreur &sect;problème noté ci-dessus). Il est plus sûr de toujours terminer vos références d’entité par des points-virgules, et de toujours “éntifier” des esperluettes lorsqu’elles ne sont pas destinées au début d’une référence d’entité.

Méfiez-vous de ces citations pas si intelligentes!

ASTUCE: Méfiez  vous des traitements de texte qui insèrent des caractères non standard sans même que vous le remarquiez!

N’utilisez pas de caractères spécifiques à la plate-forme qui ne figurent pas dans un jeu de caractères normalisé. En particulier, de nombreux traitements de texte modifieront vos guillemets et apostrophes en “guillemets intelligents”, qui se déroulent à droite ou à gauche selon le côté de la citation qu’ils sont. Ils ne font pas partie du jeu de caractères ISO 8859-1 et risquent d’avoir des effets imprévisibles sur les pages Web. Si vous visualisez la page Web de quelqu’un et qu’il y a quelque chose de bizarre comme une ligature “AE” où une apostrophe devrait être, vous savez que le développeur a utilisé les caractères propriétaires d’un système d’exploitation qui ne sont pas supportés par la norme. (D’ailleurs, vous ne devriez pas non plus utiliser ces caractères amusants dans les e-mails, car ils rendent les messages vraiment bizarres dans les lecteurs de courrier électronique qui ne les prennent pas en charge. Assez ennuyeux déjà, insister sur l’utilisation de ce genre d’ordure pour faire de leurs messages une douleur encore plus grande. Le courrier électronique, pour être sûr, devrait coller autant que possible au jeu de caractères US-ASCII standard de 7 bits; Les pages Web, comme vous le verrez plus tard, ont un plus grand répertoire de caractères disponible si vous utilisez les techniques de codage appropriées.)

Notez que certains systèmes d’exploitation placent ces caractères dans la plage # 128- # 159, mais ils sont réservés aux caractères de contrôle et ne sont pas utilisés pour les caractères imprimables dans la norme ISO. Les seuls caractères de contrôle que vous êtes censé utiliser dans les documents HTML sont l’onglet (# 9), le saut de ligne (# 10) et le retour chariot (# 13). Les autres caractères de contrôle de # 0-31 et # 128-159 ne sont pas définis dans leur effet et ne sont pas censés être présents dans les documents HTML standard. (Bien sûr, certains de ces autres caractères ont une signification dans divers programmes et systèmes d’exploitation, mais pas dans les documents Web. Un caractère, n ° 7, est le caractère “Bell” dans la norme officielle ASCII, appelant l’ordinateur ou le terminal à biper quand il est reçu, Dieu merci, les développeurs de navigateur Web n’ont pas mis en œuvre cela,<BLINK>les balises feraient aussi des pages qui sonneraient sur vous. Cependant, de telles «innovations» telles que l’ <BGSOUND>étiquette dans certains navigateurs permettent aux gens de faire ce genre de chose quand même.

Une chose qui a été ajoutée à HTML 4.0 (mais les créateurs de navigateurs ont été lents à implémenter, donc rarement utilisée) était la possibilité de faire des citations de manière “intelligente” en utilisant la <Q> balise, qui peut être rendue en utilisant les guillemets gauche et droit le système cible du navigateur – soit des guillemets ASCII standard ou des «guillemets intelligents» en fonction de ce qui est disponible sur votre système.

Le support de navigateur pour <Q>lentement arrivé au cours de la décennie après la publication de la norme. Les navigateurs basés sur Mozilla ont longtemps supporté la <Q>balise, mais ont d’abord utilisé des guillemets “droits”, pas les guillemets typographiques bouclés; plus tard, le support de devis bouclé a été ajouté. Certains navigateurs plus obscurs comme Alis Tango, Cyberdog (pour Mac) et iCab (également pour Mac) ont utilisé très tôt les bonnes citations typographiques pour ce tag, et Lynx utilise des guillemets appropriés pour le jeu de caractères du terminal utilisé .

Si votre navigateur supporte le <Q>tag, cette phrase sera affichée entre guillemets!

Une dernière chose au sujet des citations: Un style de citation trouvé souvent sur Internet est ce que j’appelle “Unix-Geek Style”. Il consiste en l’utilisation d’une citation de retour (`) pour le devis d’ouverture, et d’une citation droite normale (‘) pour le devis de clôture. Ou, avec des guillemets doubles, ce style utilise deux guillemets arrière (“) comme guillemet ouvrant, et un double guillemet normal (“) pour fermer.Ceci semble vraiment étrange dans la plupart des polices d’ordinateur actuellement utilisées, où les guillemets penchés sur le côté , mais les citations habituelles sont droites.Ce style est basé sur une version obsolète de la norme ASCII, obsolète au moins depuis les années 80, ce qui impliquait que le caractère apostrophe devrait se pencher en avant et compléter la citation rétrograde. demande que les guillemets simples et doubles soient droits, et c’est ce que montrent les polices modernes. L’ancienne police en mode texte monochrome IBM PC avait une apostrophe penchée, mais elle ne s’appuyait pas tout à fait sur le même angle que la coche arrière, de sorte qu’elle ne correspondait toujours pas bien. Certaines fontes Unix, cependant, ont des guillemets avant et arrière correspondants comme glyphes de présentation pour ces caractères, ce qui explique pourquoi les “geeks Unix” aiment ce style de citation. Ce genre de citation peut également être trouvé dans les articles de presse des services de fil, qui suivent probablement des normes basées sur les télétypes archaïques. Mais depuis ces citations comme ce style de citation. Ce genre de citation peut également être trouvé dans les articles de presse des services de fil, qui suivent probablement des normes basées sur les télétypes archaïques. Mais depuis ces citations comme ce style de citation. Ce genre de citation peut également être trouvé dans les articles de presse des services de fil, qui suivent probablement des normes basées sur les télétypes archaïques. Mais depuis ces citationsne correspondent pas dans la plupart des polices en cours d’utilisation, ni les normes ASCII actuelles impliquent qu’ils devraient, je suggère d’éviter ce style et d’utiliser les guillemets simples et doubles comme guillemets d’ouverture et de fermeture.

UNICODE

ASTUCE: Familiarisez-vous avec la norme Unicode et ses encodages standard lorsque vous utilisez des caractères en dehors de la plage ASCII. Dans le passé, vous deviez faire attention à les utiliser, même de manière conforme aux normes, en raison de la compatibilité incohérente des navigateurs, mais ces jours-ci, ils sont assez sûrs à utiliser si vous le faites correctement.

À partir de la version 4.0 du standard HTML (maintenant un ancien standard établi), Unicode est le jeu de caractères officiel du document , ce qui signifie que les références numériques sont toujours interprétées en Unicode, contrairement au codage de caractères , qui est le caractère set utilisé pour transmettre les caractères sur le réseau (et éventuellement aussi pour stocker les pages Web sur le système de fichiers du serveur, mais pas nécessairement car le serveur pourrait transformer les caractères lors de leur transmission). Cet encodage n’a pas de valeur standard sous les spécifications HTML, et il est censé être spécifié dans l’en-tête du type de contenu HTTP, mais les références de caractères numériques ne devraient pas être affectées par le codage choisi d’un document.

Les 256 premiers caractères d’Unicode (# 0- # 255) sont équivalents à la norme ISO Latin 1, qui à son tour a ses 128 premiers caractères équivalents à l’ancien US-ASCII (à l’exception d’unicode qui a choisi de ne pas donner de définition des fonctions des caractères de contrôle de # 0- # 31 et # 128- # 159, en les laissant entièrement spécifiques au système) afin que les documents Web existants fonctionnent comme d’habitude. Mais les caractères supplémentaires # 256 et plus sont également disponibles, y compris beaucoup d’autres langues étrangères, caractères mathématiques, et plus, y compris les guillemets. (Regardez la série de caractères commençant par &#8216;. Voici ce que votreaffichage du navigateur: ”, ‘”” “”) Initialement, les numéros de caractères sont passés à # 65535 (la plage de caractères de 16 bits), mais la norme a été modifiée ultérieurement pour inclure des numéros encore plus élevés. une place dans le système Unicode (comme des ensembles de symboles hautement spécialisés ou des caractères de langues obscures ou mortes). L’ensemble Unicode original pouvait être représenté par des fichiers de deux octets par caractère (ce qui prendrait deux fois l’espace du fichier ASCII équivalent), mais le standard Unicode actuel doit être codé d’une manière qui implique des nombres variables d’octets pour différents caractères, si les caractères doivent être directement représentés au lieu d’être donnés en références numériques comme avec les codes “esperluette” ci-dessus. (UTF-8 est le codage le plus populaire, comme on le verra plus loin.)

Notez qu’il existe de très vieux navigateurs qui ne supportent pas les caractères Unicode (mais ils sont trop anciens pour la plupart des gens), et même les navigateurs prenant en charge Unicode peuvent ne pas avoir accès à tous les caractères étrangers ( vous ne pouvez pas avoir une police cyrillique sur votre système, sauf si vous traitez régulièrement des documents russes, et les documents chinois et japonais exigent des milliers de caractères différents), alors ne comptez pas sur vos pages Web étant aussi largement lisible. Les citations et apostrophes “intelligentes” sont plus communément disponibles pour les utilisateurs que les caractères cyrilliques, etc., et les navigateurs les plus récents supportent tous les références de caractères Unicode pour ceux-ci. Mon propre conservatisme inné m’a conduit à continuer pendant très longtemps à utiliser de simples guillemets simples et doubles US-ASCII, supportés à la fois par les anciens et les nouveaux navigateurs,

Définir un jeu de caractères différent

Le serveur peut envoyer, dans le cadre de son identificateur de type MIME pour les documents HTML, un code de jeu de caractères tel que:

Content-type: text/html; charset=iso-8859-1

Cela indique au navigateur de s’attendre à ce que le document figure dans le jeu de caractères indiqué, ce qui permettrait d’utiliser des caractères spéciaux de cet ensemble sans avoir besoin de codes d’échappement ou de noms d’entités. Les caractères insérés avec les codes d’échappement d’esperluette seront toujours issus du jeu Unicode, tandis que les caractères réels du document seront dans le jeu de caractères “local” sélectionné par le codage du document. (Au moins, c’est comme ça que ça fonctionne, certains navigateurs peuvent varier.)

Vous pourriez penser que, parce que vous n’êtes pas l’administrateur du serveur, vous n’êtes pas en mesure de configurer ce type d’en-tête de type MIME. Il peut être “truqué” à travers unMETA HTTP-EQUIVtag, mais ce n’est pas une très bonne solution car certains navigateurs dessinent l’écran deux fois, d’abord dans le jeu de caractères par défaut, puis dans celui que vous avez sélectionné une fois qu’il se rend compte qu’il doit le faire. D’ailleurs, c’est logiquement une bêtise de spécifier votre jeu de caractères dans le document lui-même; Si le navigateur ne connaît pas le jeu de caractères que vous utilisez à l’avance, comment sait-il interpréter les balises incorporées qui en spécifient une? Que se passerait-il si votre document était en EBCDIC, un jeu de caractères n’ayant rien à voir avec ASCII ou ISO-8859-1? En fait, dans la vie réelle, tous les jeux de caractères couramment utilisés sur le Web partagent les 128 caractères ASCII standard, qui sont tous nécessaires pour les balises HTML standard, donc ce n’est pas réellement un problème.

Certains éditeurs WYSIWYG lancent automatiquement une balise META, même si votre jeu de caractères est normal. ceci est inutile, et produit un scintillement agaçant de l’écran sur certains navigateurs. Sans oublier que certains de ces éditeurs utiliseront joyeusement des caractères non standard comme les “citations intelligentes” de MS-Windows, auquel cas tout en-tête qu’il insère à l’effet que ISO-8859-1 est le jeu de caractères utilisé est en fait un mensonge .

D’un autre côté, si vous créez des pages destinées à être utilisées dans des situations autres que les serveurs HTTP, par exemple sur des CD-ROM, il n’y a pas d’en-tête de serveur pour identifier le codage de caractères. l’utilisation d’une METAétiquette peut être la seule option raisonnable.

Mais, en tout cas, les vrais en-têtes de serveurs sont plus accessibles que vous ne le pensez; Si votre site est hébergé via le logiciel serveur Apache (le serveur le plus populaire), essayez de placer un fichier nommé .htaccess dans le répertoire racine de votre site, avec cette ligne:

AddType text/html;charset=ISO-8859-1 .html

Remplacer “ISO-8859-1” avec un autre nom de jeu de caractères officiel si vous utilisez un jeu de caractères différent (par exemple, un avec caractères cyrilliques, grecs ou hébreux, de préférence UTF-8 ces jours), et remplacer “.html” avec l’extension de fichier que vous utilisez pour les fichiers HTML si elle est différente. (Vous pouvez utiliser différentes extensions pour les pages de différents jeux de caractères, comme “.ru.html” pour les pages en russe qui ont besoin de l’ensemble cyrillique.)

UTF-8

Parmi les nombreux codages pour le répertoire complet des caractères Unicode, UTF-8 est de loin le plus populaire. Contrairement aux codages précédents qui avaient un caractère par octet (ou, dans le cas de certains codages asiatiques, deux octets par caractère), UTF-8 utilise un nombre variable d’octets par caractère. Les octets avec des valeurs décimales de 0 à 127 sont utilisés de la même manière que US-ASCII et ISO-8859-1, comme un seul caractère dans la plage ASCII, mais les octets de 128 à 255 sont considérés comme le premier octet de une séquence plus longue de deux octets ou plus (exactement combien est déterminé par quelle valeur est dans chaque octet). Un fichier UTF-8 doit être analysé du début à la fin conformément aux règles d’encodage afin de déterminer le nombre de caractères, contrairement à un fichier ASCII où le nombre de caractères peut être vu dans la taille du fichier en octets.

Beaucoup de programmes d’édition supportent nativement UTF-8, il vous sera donc possible de créer des documents dans cet encodage, vous permettant d’utiliser tous les caractères en Unicode sans avoir à utiliser les “codes d’esperluette” indiqués ci-dessus. Si vous utilisez UTF-8, assurez-vous que votre serveur Web l’annonce correctement; le texte peut ressembler à du charabia s’il est servi avec un en-tête de codage incorrect.

Si vous vous en tenez aux caractères ASCII, vous pouvez annoncer le codage comme UTF-8, ISO-8859-1, US-ASCII, ou un certain nombre d’autres valeurs et le faire fonctionner de manière identique, car la plage ASCII est codée de manière identique dans ces codages. Vous pouvez même avoir n’importe quels caractères sous la forme de codes d’esperluette en HTML et avoir toujours cette équivalence, mais si vous insérez des caractères bruts en dehors de la plage ASCII comme une lettre accentuée ou une citation bouclée, vous devez savoir ce que vous les sauvons dedans.

Polices

ASTUCE: l’ FONT FACEattribut est obsolète. utilisez plutôt des feuilles de style . Mais si vous insistez pour l’utiliser, au moins savoir comment cela fonctionne et ce qu’il faut surveiller.

À l’origine, les auteurs HTML n’avaient aucun moyen de définir des polices; tous les documents étaient affichés dans les polices choisies par le navigateur. Beaucoup de gens pensent que c’est comme ça que ça doit être; l’auteur d’un navigateur pour une plate-forme particulière est plus à même de choisir des polices attrayantes et lisibles pour ce système que l’auteur d’un site Web qui sera consulté sur de nombreux systèmes différents. Cependant, les navigateurs actuels prennent en charge l’utilisation de la FONTbalise pour changer les polices. Ceci est fait avec <FONT FACE="Arial,Helvetica,Sans">, où la valeur de l’attribut est une liste de noms de police. Si la première police de la liste est disponible sur le système de l’utilisateur, elle sera utilisée; sinon, le second sera utilisé si disponible, et ainsi de suite. Si aucune n’est disponible, la police par défaut normale est utilisée.

C’est une fonctionnalité à utiliser très attentivement si vous l’utilisez du tout. Vous ne savez pas avec certitude quelles sont les polices disponibles sur le système d’un utilisateur, qui peuvent s’exécuter sous Windows, MacOS, UNIX ou une autre plate-forme. Peut-être qu’un utilisateur a une police appelée “Arial” qui est totalement différente de la “Arial” que vous connaissez. Peut-être que l’implémentation de “Helvetica” par l’utilisateur ne peut pas bien s’adapter aux tailles de points dont votre document a besoin. Vous pouvez facilement créer un désordre total sur les systèmes de certains utilisateurs. Ces jours-ci, maintenant que les feuilles de style en cascade sont largement pris en charge, la feuille de style est l’endroit approprié pour suggérer des polices, et j’ai presque complètement éliminé l’utilisation deFONTtags moi-même (pas que j’ai toujours été un utilisateur lourd d’entre eux en premier lieu). Depuis que j’ai écrit la version originale de cette page avant que les feuilles de style ne soient aussi bien établies, je n’en ai pas beaucoup parlé, et j’ai donné des exemples en utilisant les anciennes balises obsolètes comme FONT. Cependant, plusieurs de mes notes et mises en garde concernant l’utilisation et l’abus des polices s’appliquent toujours même lorsque vous utilisez des feuilles de style pour les suggérer.

Si vous utilisez des caractères spéciaux non-ASCII, tels que des caractères accentués en langue étrangère ou des alphabets non latins (cyrillique, etc.), il a longtemps été considéré comme une mauvaise idée d’utiliser des paramètres de police codés en dur … il y avait énorme variation dans la disponibilité des caractères spéciaux dans différentes polices, et souvent il y avait des versions américaines et étrangères d’une police donnée qui ont un répertoire de caractères différents. Sans parler des multiples codages de caractères pour certains alphabets qui ont des caractères différents à des positions différentes, de sorte que certaines polices peuvent être dans un ordre différent des autres. Un navigateur correctement compatible Unicode devrait ajuster cela et afficher les caractères corrects dans tous les cas, mais vous ne pourriez pas toujours compter sur la conformité de tous les navigateurs. Si vous évitez de spécifier une police spécifique, vous donnez au navigateur et aux propres configurations de l’utilisateur une chance de trouver une police qui fonctionne pour la langue particulière du document, mais si vous spécifiez une police, vous risquez de forcer l’utilisation d’une police qui ne fonctionne pas. Cependant, nous espérons que ceci n’est plus qu’un problème académique, avec le support d’Unicode bien établi dans les navigateurs modernes.

Si vous utilisez des paramètres de police pour des éléments tels que des en-têtes, des légendes et des encadrés, vous pouvez au moins vous empêcher de modifier la police sur le corps du texte normal de votre document. Ce texte est particulièrement important qu’il soit lisible, et généralement la police par défaut du navigateur fait le meilleur travail. En particulier, beaucoup de développeurs semblent aimer utiliser Arial comme police de caractères. Je ne sais pas pourquoi, puisque j’aime vraiment mieux les looks du défaut normal (Times New Roman). Arial est une police sans-serif, et j’ai entendu parler d’études qui montrent que les polices serif sont généralement plus lisibles pour les gros blocs de texte. Là encore, j’ai entendu parler d’autres études qui montrent que cela ne s’applique qu’au papier, pas aux écrans d’ordinateur. Cependant, je préfère toujours les polices serif pour le texte de corps moi-même (et les gens fontparfois imprimer des pages Web!) Arial est mieux adapté pour les titres brèves. Arial a également tendance à paraître un peu plus grand que les autres polices, ce qui encourage les développeurs à utiliser l’ SIZE attribut de la FONTbalise pour la rendre plus petite, une autre mauvaise idée car elle peut produire du texte difficile à lire pour certains utilisateurs.

Évitez les FONT SIZEparamètres pour votre texte corps normal. Par définition, la taille de police normale du navigateur est supposée être la taille la plus lisible pour un texte normal. C’est la raison pour laquelle les navigateurs disposent d’un paramètre de configuration permettant à l’utilisateur de choisir une taille de police pour le texte normal, afin qu’ils puissent en choisir une qui soit bonne pour eux. Lorsque vous utilisez<FONT SIZE="-1">, ce que vous dites réellement est “Prenez la taille de police que l’utilisateur a choisie comme taille lisible pour le texte normal, et réduisez la taille de la police.” Ce n’est pas si poli à l’utilisateur que vous attendez de lire votre texte. Vous ne devez utiliser des tailles de police variant que pour les cas particuliers où un élément de texte particulier doit être plus petit ou plus grand que la normale, comme le légendaire en bas de page exigé par votre avocat mais que vous n’attendez pas vraiment. Et, en passant, il n’y a vraiment aucune différence entre les tailles “relatives” comme “-1” et “absolues” comme “2”. Ils sont vraiment tous relatifs. Le texte normal du navigateur est défini comme la taille “3” (à moins que vous n’utilisiez le<BASEFONT>tag), et les autres tailles sont relatives à cela. Les nombres sont dans une échelle arbitraire sans relation avec des unités absolues comme des points, des picas, des pixels ou des millimètres. Les tailles réelles qu’ils représentent peuvent varier selon le navigateur et la plate-forme, même si les utilisateurs ne modifient pas leurs valeurs par défaut via les options de préférence. Il n’y a aucun moyen de forcer une taille de police exacte sur tous les utilisateurs de tous les navigateurs, bien que les feuilles de style vous permettent de mieux suggérer une police que les anciennes balises de polices.

ASTUCE: Ne pas “simuler” des caractères spéciaux (alphabets étrangers, symboles mathématiques, images “dingbat”, etc.) en utilisant des FONT FACEéléments. Ceci est voué à l’échec sur de nombreux navigateurs maintenant et même plus dans le futur, tandis que le support pour les représentations Unicode appropriées ne fera qu’augmenter.

L’utilisation de polices non-ASCII comme “Dingbats” ou “Symbol”, ou des polices spécialisées pour les alphabets étrangers, est un “hack de présentation” qui obscurcit la structure logique d’un document et devrait être évité. Tout utilisateur qui n’a pas cette police spécialisée particulière verra le caractère ASCII à la même position, ce qui changera probablement totalement la signification de votre document. Mais, à l’avenir, il est probable que même les navigateurs sur les plates-formes qui fontla police spéciale donnée ne pourra pas rendre cette technique de “hack” comme l’auteur l’a voulu. La raison en est qu’un support Unicode complet implique le découplage des caractères logiques des polices particulières utilisées pour les afficher. Un “a” est toujours une lettre minuscule latine “a”, et un “alpha” (caractère Unicode 945 décimal, entité & # 945 ;: α) est toujours une lettre grecque “alpha”, peu importe ce que les étiquettes FONT peuvent entourer bloc de texte pour des raisons de présentation. Quand une séquence est rencontrée comme <FONT FACE="Symbol">a</FONT>ou <FONT FACE="Arial">&#945;</FONT>, il est considéré comme une tentative, respectivement, d’afficher un “a” en utilisant la police Symbol, et un alpha en utilisant la police Arial. Si le navigateur trouve alors que les caractères respectifs ne sont pas présents dans ces polices – il n’y a pas de “a” dans Symbol et pas d’alpha dans (la version américaine de) Arial, alors il est censé ignorer la balise de police et rendre la bonne personnage dans une autre police qui fait l’avoir. Quel caractère, le cas échéant, se trouve à la même position de code dans une police que le caractère donné est dans un autre, est totalement hors de propos. Une prise en charge complète et correcte de cette fonction dans les futures versions de navigateur permettra d’exprimer un large éventail de caractères mixtes dans des documents de manière indépendante de la plate-forme, utile aux linguistes et aux mathématiciens. Mais il va également casser certaines tentatives antérieures, non standard, de “forcer” les caractères spéciaux via des balises de police.

Une dernière note sur l’ FONTélément; les spécifications HTML 4.0 définissent cela comme un élément de niveau caractère, pas un élément de niveau bloc. Ce que cela signifie en anglais ordinaire est qu’une plage de texte entre <FONT>et </FONT> ne peut pas inclure un balisage au niveau du bloc tel que <P>; Les éléments de police peuvent être dans un paragraphe, mais les paragraphes ne peuvent pas être dans un élément de police. Vous devez ouvrir un nouvel élément de police dans chaque paragraphe ou une autre construction de bloc pour laquelle vous souhaitez spécifier une police, et fermez-le à la fin du paragraphe (correctement imbriqué dans les autres constructions que vous utilisez). Ne pas le faire produira beaucoup d’erreurs bizarres dans un validateur si vous essayez de valider votre site.

Hall de la honte

Améliorez votre site en regardant d’autres sites qui montrent, par exemple, ce qu’il ne faut pas faire !

NOTE: L’inclusion d’un site dans mes liens «Hall of Shame» ne doit pas être interprétée comme une attaque personnelle contre le créateur du site, qui peut être une personne vraiment géniale, ou même une attaque sur le site Web lié dans son ensemble , ce qui peut être une source d’information et / ou de divertissement vraiment géniale. Au contraire, il s’agit simplement de mettre en évidence des caractéristiques spécifiques (intentionnelles ou accidentelles) des sites liés qui provoquent des problèmes qui auraient pu être évités par une meilleure conception. Si vous trouvez que l’un de vossites est lié ici, ne vous offusquez pas; améliorer votre site afin que je vais devoir supprimer le lien!

  • Les gens font corriger leurs erreurs parfois; quelques pages que j’ai précédemment citées ici pour des personnages foirés ont plus tard changé leur code pour que cela fonctionne correctement. L’un d’entre eux n’est plus en ligne, mais cette page était l’autre; ses lettres accentuées montraient autrefois quelque chose de bizarre en raison de caractères apparemment entrés dans un codage et servi dans un autre, mais maintenant ils sont corrects. Félicitations … vous n’êtes plus dans mon Hall of Shame!
  • Un autre ancien Hall of Shamer qui est maintenant réformé: Beaucoup de décisions sur les conflits de noms de domaine sur le site du National Arbitration Forum étaient difficiles à lire parce que toutes les apostrophes, et certaines des guillemets, sortent comme des lettres accentuées étranges . C’était apparemment le résultat de la mise en place de soi-disant “citations intelligentes” dans un jeu de caractères spécifique à la plate-forme, qui est très endommagé quelque part dans le processus de mise sur le Web. Cependant, ils semblent l’avoir réparé depuis lors.
  • D’autre part, cette décision sur le fournisseur concurrent de règlement des différends OMPI affiche une certaine confusion de jeu de caractères. La page est envoyée par son serveur avec le paramètre MIME “charset” de ISO-8859-1. Les auteurs tentent alors de surcharger ceci avec une METAbalise donnant le jeu de caractères euc-cn, mais selon les normes, le jeu de caractères fourni par le serveur a la priorité sur les METAbalises de document . Ainsi, un navigateur conforme aux standards (par exemple, Mozilla ) tentera de rendre la page telle ISO-8859-1quelle, ce qui signifie que les caractères chinois, les apostrophes bouclées et d’autres caractères non-ASCII ressortiront comme du charabia.
  • De même, cette page est servie comme ISO-8859-1 mais a UTF-8dans son METAtag; Les navigateurs conformes aux normes montrent un grand désordre partout où des caractères tels que les soi-disant «citations intelligentes» sont utilisés.
  • Cette proposition de brouillon Internet est servie comme iso-8859-1 mais a une METAétiquette contradictoire disant que c’est IBM437 . Dans Mozilla, ça se voit avec des personnages amusants partout.

 

Source: https://webtips.dan.info/char.html

Leave a Reply

Your email address will not be published. Required fields are marked *