<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>SELFHTML: Param&egrave;tres internationaux / Ordinateur et langage &eacute;crit</title> <link rel="stylesheet" type="text/css" href="../src/selfhtml.css"> <meta name="description"    content="Quelle action m&egrave;nent ensemble les bits, les octets, les jeux de caract&egrave;res et les polices d'&eacute;criture - avec un exemple pour illustrer."> <meta name="keywords"       content="SELFHTML, param&egrave;tres internationaux, octets, caract&egrave;res, jeu de caract&egrave;res, jeu de caract&egrave;res ASCII, jeu de caract&egrave;res ANSI, jeu de caract&egrave;res DOS, polices, fontes, culture de l'&eacute;crit, sens de lecture, dir=, bdo"> <meta name="author"         content="Stefan M&uuml;nz, selfhtml@teamone.de"> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta name="DC.Publisher"   content="Serge Fran&ccedil;ois, selfhtml@selfhtml.com.fr"> <meta name="DC.Date"        content="2003-01-27T08:00+00:00"> <meta name="DC.Identifier"  content="http://selfhtml.selfhtml.com.fr/internationalisation/langage.htm"> <meta name="DC.Language"    content="de"> <meta name="DC.Rights"      content="../editorial/copyright.htm"> <meta name="DC.Date.Create" content="2003-01-27T08:00+00:00"> <meta name="SELF.Version"   content="1"> <meta name="SELF.Pagetype"  content="Information"> <meta name="SELF.Path"      content="SELFHTML == ../index.htm // Param&egrave;tres internationaux == index.htm"> </head> <body bgcolor="#FFFFFF" text="#000000" link="#AA5522" vlink="#772200" alink="#000000">   <table cellpadding="4" cellspacing="0" border="0" width="100%"> <tr> <td bgcolor="#FFEEDD" class="nav"><a class="an" name="top"><img src="../src/refchap.gif" width="16" height="13" border="0" alt="Renvoie au chapitre d'origine"></a> <a href="../index.htm"><b>SELFHTML</b></a>/<a href="../navigation/index.htm" target="_parent">Aides &agrave; la navigation</a> <img src="../src/refchap.gif" width="16" height="13" border="0" alt="Renvoie au chapitre d'origine"> <a href="index.htm"><b>Param&egrave;tres internationaux</b></a></td> </tr> </table><table cellpadding="4" cellspacing="0" border="0" width="100%"> <tr> <td bgcolor="#EEEEEE" class="doc" width="110"><img src="../src/logo.gif" width="106" height="109" border="0" alt="SELFHTML"></td> <td bgcolor="#EEEEEE" class="doc" valign="bottom" width="100%"><h2>Ordinateur et langage &eacute;crit</h2></td> </tr> <tr> <td bgcolor="#EEEEEE" class="doc" valign="top" align="center"> <img src="../src/docx.gif" width="30" height="20" vspace="6" border="0" alt="Page d'information: vue d'ensemble"> </td> <td bgcolor="#FFFFFF" valign="top" nowrap> <p> <img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas">&nbsp;<a href="#bits_octets_caracteres"><b> Bits, octets et caract&egrave;res </b></a> <br> <img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas">&nbsp;<a href="#jeux_caracteres"><b>Exemple pour jeu de caract&egrave;res </b></a><br> <img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas">&nbsp;<a href="#limites"><b> Faire sauter les limites des octets et des jeux de caract&egrave;res</b></a><br> <img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas">&nbsp;<a href="#polices"><b>La signification des polices</b></a><br> <img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas">&nbsp;<a href="#cultures_ecrit"><b>Cultures de l'&eacute;criture avec un autre sens d'&eacute;criture </b></a> </p> </td> </tr><tr><td colspan="2" bgcolor="#EEEEEE" class="doc">&#160;<a href="#bottom"><img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas"></a>&#160;</td></tr> </table>    <h2 class="Sh2"><a class="an" name="bits_octets_caracteres">Bits, octets et caract&egrave;res</a></h2>  <p>Les deux unit&eacute;s de base dans chaque ordinateur d'aujourd'hui sont le <b>bit</b> et l' <b>octet</b>. Un octet est pour les syst&egrave;mes habituels d'aujourd'hui d&eacute;fini comme une suite de 8 bits (on parle aussi de <b>bytes</b>).  &Eacute;tant donn&eacute; que chaque bit peut avoir deux &eacute;tats &agrave; savoir 0 ou 1 ou bien oui ou non, il est possible de r&eacute;aliser avec une suite de 8 bits exactement 256 (= 2<sup>8</sup>) &eacute;tats diff&eacute;rents. &Eacute;tant donn&eacute; que dans l'ordinateur le comptage commence toujours &agrave; 0, vous pouvez avoir dans un octet des valeurs d&eacute;cimales comprises entre 0 et 255.</p>  <p>Quand un programme qui tourne sur l'ordinateur lit signe par signe un fichier dans la m&eacute;moire de travail, se trouvent ensuite dans la m&eacute;moire de travail que des valeurs d'octets. Si donc un navigateur WWW lit un fichier HTML dans la m&eacute;moire de travail, le fichier n'y est compos&eacute; de rien d'autre que de valeurs d'octets. &Agrave; ce niveau, il n'est pas encore question des signes de notre alphabet. Pour que les valeurs d'octet deviennent des signes lisibles pouvant &ecirc;tre repr&eacute;sent&eacute;s &agrave; l'&eacute;cran, il faut une convention qui &eacute;tablit quelle valeur d'octet doit repr&eacute;senter quel signe. C'est le travail de ce qu'on appelle les <b>jeux de caract&egrave;res</b>. Les jeux de caract&egrave;res sont des tableaux qui affectent un signe ayant une signification dans nos cultures d'&eacute;critures.</p>  <p>Les jeux de caract&egrave;res sont des cr&eacute;ations anciennes dans l'histoire de l'informatique. Jusqu'&agrave; l'arriv&eacute;e de l'ordinateur personnel, beaucoup d'ordinateurs utilisaient encore des unit&eacute;s de base de 7 bits, avec lesquelles on ne pouvait repr&eacute;senter que 128 &eacute;tats diff&eacute;rents. Encore plus t&ocirc;t, on a eu aussi des unit&eacute;s de base de 6 bits et de 5 bits de long. Les premiers jeux de caract&egrave;res s'&eacute;tant impos&eacute;s historiquement, reposent sur les unit&eacute;s de base de 7 bits : le jeu de caract&egrave;res <var>ASCII</var> et le jeu de caract&egrave;res <var>EBCDIC</var>. L&agrave; c'est avant tout le jeu de caract&egrave;res ASCII qui s'imposait parce qu'il fut mis en service dans le syst&egrave;me d'exploitation en vogue Unix et sur les ordinateurs personnels.</p>  <p>Pour le jeu de caract&egrave;res ASCII les 32 premiers signes sont r&eacute;serv&eacute;s pour des caract&egrave;res de contr&ocirc;le, par exemple pour des impulsions clavier comme le passage &agrave; la ligne. Les signes entre 32 et 127 sont des signes pouvant &ecirc;tre repr&eacute;sent&eacute;s parmi lesquels toutes les lettres, les chiffres et la ponctuation dont un am&eacute;ricain a besoin (car le jeu de caract&egrave;res ASCII vient naturellement des USA).</p>  <p>Pendant longtemps, ASCII &eacute;tait le seul standard r&eacute;pandu. &Eacute;tant donn&eacute; que les ordinateurs les plus r&eacute;cents ont des octets permettant 256 &eacute;tats, il &eacute;tait logique de trouver d'autre utilisations pour les valeurs entre 128 et 255. L&agrave; pourtant se d&eacute;velopp&egrave;rent des solutions sp&eacute;cifiques aux constructeurs. MS DOS utilise par exemple un &quot;jeu de caract&egrave;res ASCII &eacute;tendu&quot; qui n'est pas grand chose d'autre qu'une belle transcription pour l'occupation propre &agrave; Microsoft des signes 128 &agrave; 255 sp&eacute;ciale pour les besoins de MS-DOS.</p>  <p>Pour cr&eacute;er ici aussi un standard, l'organisation am&eacute;ricaine de standardisation inventa le jeu de caract&egrave;res <var>ANSI</var>. Ce jeu de caract&egrave;res reprend pour les signes 0 &agrave; 127 le jeu de caract&egrave;res ASCII et d&eacute;finit pour les valeurs entre 128 et 255 quantit&eacute; de signes sp&eacute;ciaux parmi lesquels des signes importants de l'alphabet pour des langues r&eacute;pandues, par exemple les signes avec accent, les lettres avec accent en fran&ccedil;ais ou les signes espagnols avec tilde. S'y ajoutent divers signes commerciaux ou scientifiques r&eacute;pandus.</p>  <p>La demande en jeux de caract&egrave;res internationaux valables est pourtant toujours plus grande. Une tentative pour &eacute;tablir une telle collection de jeux de caract&egrave;res est repr&eacute;sent&eacute;e par la <img src="../src/doc.gif" width="15" height="10" border="0" alt="Autre page d'information">&nbsp;<a href="jeux_caracteres.htm#iso8859"><b>famille iso-8859</b></a>.</p>     <table bgcolor="#EEEEEE" class="doc" width="100%"><tr><td> &#160;<a href="#top"><img src="../src/haut.gif" width="14" height="10" border="0" alt="vers le haut"></a><a href="#bottom"><img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas"></a>&#160; </td></tr></table> <h2 class="Sh2"><a class="an" name="jeux_caracteres">Exemple pour jeu de caract&egrave;res</a></h2>  <p>Un exemple doit &eacute;clairer le principe des jeux de caract&egrave;res. L' illustration suivante montre deux jeux de caract&egrave;res: le jeu de caract&egrave;res MS-DOS et le jeu de caract&egrave;res ANSI que MS Windows par exemple utilise par d&eacute;faut.</p>  <p><img src="dos_ansi.gif" width="626" height="377" border="0" alt="Jeux de caract&egrave;res DOS- et Ansi"></p>  <p>Vous pouvez constater sur l'illustration que les parties sup&eacute;rieures (plus sombres) des deux jeux de caract&egrave;res sont identiques, &eacute;tant donn&eacute; que les deux jeux de caract&egrave;res reprennent le jeu de caract&egrave;res ASCII pour les 128 premiers signes (les 32 premiers signes manquent sur l'illustration &eacute;tant donn&eacute; qu'il s'agit pour ces signes de caract&egrave;res de contr&ocirc;le qui ne sont pas graphiques). Les parties inf&eacute;rieures (plus claires) sont par contre diff&eacute;rentes. L&agrave; o&ugrave; dans le jeu de caract&egrave;res ANSI par exemple se trouve un <code>&uacute;</code> fran&ccedil;ais minuscule, le jeu de caract&egrave;res DOS &eacute;tendu propose un tr&eacute;ma <b><code>&uml;</code></b>.</p>  <p>Si vous travaillez avec MS Windows, vous pouvez exp&eacute;rimenter &ccedil;a vous m&ecirc;me: Cr&eacute;ez sous MS Windows avec un &eacute;diteur de texte ANSI (par exemple le bloc notes) un fichier vide: frappez simplement quelque chose comme &quot;&eacute;&eacute;&eacute;&eacute;&egrave;&ugrave;&ugrave;&ugrave;&icirc;&icirc;&icirc;&icirc;&quot;. Sauvegardez la saisie avec un nom de fichier. Ensuite appelez l'invite DOS (Commandes DOS) et entrez <kbd>edit</kbd>. Alors l'&eacute;diteur DOS s'ouvre. Ouvrez alors le fichier sauvegard&eacute; auparavant sous Windows. Maintenant vous pouvez voir quelle est la relation entre octet et jeu de caract&egrave;res: Le m&ecirc;me nombre de caract&egrave;res que sous Windows est affich&eacute; mais les signes sont diff&eacute;rents. La raison en est que dans la m&eacute;moire de travail ne se trouvent toujours que les valeurs d'octet. Ce qu'un programme en fait d&eacute;pend du jeu de caract&egrave;res qu'il utilise.</p>  <p>L'exemple entre le jeu de caract&egrave;res MS-DOS et le jeu de caract&egrave;res ANSI a &eacute;t&eacute; choisi ici intentionnellement &eacute;tant donn&eacute; qu'il est possible de la tester sur le m&ecirc;me ordinateur. Mais l'exemple doit avant tout donner le courage d'aller plus loin dans les myst&egrave;res des jeux de caract&egrave;res et de de prendre conscience que rien de ce qui est affich&eacute; dans la fen&ecirc;tre d'affichage ne coule de source mais que tout repose sur des conventions, qui d'un point de vue technique informatique reposent sur des bases bien plus profondes que HTML et autres langages Web standardis&eacute;s.</p>         <table bgcolor="#EEEEEE" class="doc" width="100%"><tr><td> &#160;<a href="#top"><img src="../src/haut.gif" width="14" height="10" border="0" alt="vers le haut"></a><a href="#bottom"><img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas"></a>&#160; </td></tr></table> <h2 class="Sh2"><a class="an" name="limites">Faire sauter les limites des octets et des jeux de caract&egrave;res</a></h2>  <p>Les jeux de caract&egrave;res recouvrent des cultures distinctes de l'&eacute;criture et les langues ou familles de langues qui s'y rattachent. Cela devient probl&eacute;matique quand des documents en plusieurs langues doivent &ecirc;tre &eacute;tablis qui contiennent des &eacute;critures de jeux de caract&egrave;res tout &agrave; fait diff&eacute;rents. M&ecirc;me pour les cultures de l'&eacute;criture non alphab&eacute;tique, les jeux de caract&egrave;res ne sont pas appropri&eacute;s. &Agrave; notre &eacute;poque de la mondialisation il est pourtant toujours plus important de trouver une solution informatique technique standard pour de tels probl&egrave;mes, solution qui s'impose aux syst&egrave;mes informatiques les plus divers. Il existe d&eacute;j&agrave; une telle solution: le  <img src="../src/doc.gif" width="15" height="10" border="0" alt="Autre page d'information">&nbsp;<a href="unicode.htm"><b>syst&egrave;me Unicode</b></a>. Unicode doit &agrave; long terme remplacer le syst&egrave;me habituel aujourd'hui des jeux de caract&egrave;res. &Agrave; l'heure actuelle, beaucoup de choses vont dans cette direction. Les syst&egrave;mes d'exploitation r&eacute;cents proposent d&eacute;j&agrave; la plupart du temps des polices qui ne sont plus limit&eacute;es &agrave; un jeu de caract&egrave;res mais qui couvrent le syst&egrave;me complet de caract&egrave;res Unicode ou tout au moins une grande partie de ce syst&egrave;me. M&ecirc;me la plupart des applications modernes sauvegardent les textes non plus avec un octet par caract&egrave;re mais avec deux octet par caract&egrave;re. C'est ce qui donne la base du soutien du syst&egrave;me Unicode.</p>      <table bgcolor="#EEEEEE" class="doc" width="100%"><tr><td> &#160;<a href="#top"><img src="../src/haut.gif" width="14" height="10" border="0" alt="vers le haut"></a><a href="#bottom"><img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas"></a>&#160; </td></tr></table> <h2 class="Sh2"><a class="an" name="polices">La signification des polices</a></h2>  <p>Les polices sont des mod&egrave;les de description pour repr&eacute;senter les signes sur les p&eacute;riph&eacute;riques de sortie comme l'&eacute;cran ou l'imprimante. Chaque syst&egrave;me d'exploitation courant aujourd'hui contient ce qu'on appelle des <b>polices syst&egrave;me</b>. Ce sont des polices qui contiennent en tous cas exactement les signes qui sont d&eacute;finis dans le jeu de caract&egrave;res sur lequel le syst&egrave;me se base par d&eacute;faut. Sous MS Windows il existe par exemple une telle police nomm&eacute;e <var>System</var>. Par ailleurs, il existe sur les ordinateurs modernes des ports d&eacute;finis pour des polices au choix. Le port Adobe est par exemple r&eacute;pandu pour des polices (<var>PostScript</var>). Sous MS Windows vient en plus un port distinct (<var>TrueType</var>).</p>  <p>De telles polices peuvent poser des mod&egrave;les de repr&eacute;sentation quelconques sur les valeurs d'octets disponibles. Ainsi il existe &eacute;galement des polices comme <var>WingDings</var> ou <var>ZapfDingbats</var>, qui ne contiennent presque exclusivement que des symboles et des ic&ocirc;nes. Pourtant sont importantes avant tout les polices qui certes sont &eacute;vocatrices mais qui en m&ecirc;me temps soutiennent un certain jeu de caract&egrave;res, c'est &agrave; dire qui repr&eacute;sentent tous les signes de ce jeu de caract&egrave;res et cela exactement aux valeurs d'octet qui sont pr&eacute;vues &agrave; cet effet dans le jeu de caract&egrave;res. Ce n'est que par de telles polices qu'il est possible de repr&eacute;senter graphiquement des jeux de caract&egrave;res donn&eacute;s. L'illustration suivante montre un exemple pour ce contexte:</p>  <p><img src="police_caractere_byte.gif" width="246" height="236" border="0" alt="relation entre octet, valeur du caract&egrave;re et police"></p>  <p>Pour les polices modernes qui couvrent tout le syst&egrave;me Unicode, le principe est le m&ecirc;me. &Agrave; la diff&eacute;rence pr&egrave;s que ce ne sont pas seulement 256 caract&egrave;res qui peuvent y &ecirc;tre adress&eacute;s  mais &agrave; l'heure actuelle jusqu'&agrave; 65536 caract&egrave;res et &agrave; l'avenir encore beaucoup plus pour la simple raison que deux ou m&ecirc;me quatre octets sont employ&eacute;s ce qui rend possibles des valeurs bien plus &eacute;lev&eacute;es que 256.</p>       <table bgcolor="#EEEEEE" class="doc" width="100%"><tr><td> &#160;<a href="#top"><img src="../src/haut.gif" width="14" height="10" border="0" alt="vers le haut"></a><a href="#bottom"><img src="../src/bas.gif" width="14" height="10" border="0" alt="vers le bas"></a>&#160; </td></tr></table> <h2 class="Sh2"><a class="an" name="cultures_ecrit">Cultures de l'&eacute;criture avec un autre sens d'&eacute;criture</a></h2>  <p>&Eacute;tant donn&eacute; que l'industrie informatique vit le jour aux USA et en Europe d'un point de vue historique, les syst&egrave;mes mat&eacute;riels et syst&egrave;mes d'exploitation actuels sont fond&eacute;s sur des principes qui d'abord coulaient de source. Quand dans un programme de traitement de texte, vous frappez un texte, le curseur se d&eacute;place pendant la frappe de gauche &agrave; droite. Les c&eacute;sures se font se font selon les d&eacute;limiteurs typiques des langues de l'ouest comme l'espace ou le trait d'union.</p>  <p>l y a pourtant quantit&eacute; de cultures de l'&eacute;criture qui ont une direction d'&eacute;criture diff&eacute;rente de la notre. &Agrave; ces cultures appartiennent l'&eacute;criture arabe, l'&eacute;criture h&eacute;braque et les cultures de l'&eacute;criture de l'extr&ecirc;me orient. Pour repr&eacute;senter sur des ordinateurs de telles cultures de l'&eacute;criture, des propri&eacute;t&eacute;s suppl&eacute;mentaires du logiciel sont indispensables. Car il n'est pas seulement question de repr&eacute;senter les &eacute;l&eacute;ments d'&eacute;criture mais aussi d'adapter &agrave; la culture d'&eacute;criture correspondante, la direction pour l'&eacute;dition lors de la saisie et de la sortie sur des p&eacute;riph&eacute;riques comme l'&eacute;cran ou l'imprimante.</p>  <p>&Agrave; cet effet existent en HTML des composantes du langage comme l'attribut universel <code>dir=</code> ou l'&eacute;l&eacute;ment <code>bdo</code>, &agrave; l'aide desquels les auteurs de pages Web peuvent faire des mentions concernant le sens de l'&eacute;criture. La transcription c&ocirc;t&eacute; logiciel &quot;on the fly&quot; sans qu'il soit indispensable d'installer un logiciel sp&eacute;cial suppl&eacute;mentaire fonctionne aussi d&eacute;j&agrave; en partie pour les navigateurs r&eacute;cents.</p>       <table cellpadding="4" cellspacing="0" border="0" width="100%"> <tr><td colspan="2" bgcolor="#EEEEEE" class="doc"> &#160;<a href="#top"><img src="../src/haut.gif" width="14" height="10" border="0" alt="vers le haut"></a> </td></tr> <tr><td bgcolor="#EEEEEE" class="doc" align="right"><a href="jeux_caracteres.htm"><img src="../src/suivant.gif" width="10" height="10" border="0" hspace="10" alt="page suivante"></a></td> <td bgcolor="#FFFFFF"><img src="../src/doc.gif" width="15" height="10" border="0" alt="Autre page d'information"> <a href="jeux_caracteres.htm"><b>  Jeux de caract&egrave;res (famille iso-8859 et autres)</b></a> </td></tr> <tr> <td bgcolor="#EEEEEE" class="doc" align="right"><a href="../cgiperl/modules/cgi.htm"><img src="../src/precedent.gif" width="10" height="10" border="0" hspace="10" alt="page pr&eacute;c&eacute;dente"></a></td> <td bgcolor="#FFFFFF" width="100%"><img src="../src/doc.gif" width="15" height="10" border="0" alt="Autre page d'information"> <a href="../cgiperl/modules/cgi.htm"><b>Module CGI: Fonctions pour la programmation CGI</b></a> </td> </tr> <tr><td colspan="2" bgcolor="#EEEEEE" class="doc">&#160;</td></tr> </table><table cellpadding="4" cellspacing="0" border="0" width="100%"> <tr> <td bgcolor="#FFEEDD" class="nav"><a class="an" name="bottom"><img src="../src/refchap.gif" width="16" height="13" border="0" alt="Renvoie au chapitre d'origine"></a> <a href="../index.htm"><b>SELFHTML</b></a>/<a href="../navigation/index.htm" target="_parent">Aides &agrave; la navigation</a> <img src="../src/refchap.gif" width="16" height="13" border="0" alt="Renvoie au chapitre d'origine"> <a href="index.htm"><b>Param&egrave;tres internationaux</b></a></td> </tr> </table>  <p>&copy; 2001 Stefan M&uuml;nz / &copy; 2003 Traduction <img src="../src/courriel.gif" width="15" height="10" border="0" alt="Adresse &eacute;lectronique">&nbsp;<a href="mailto:13405@free.fr">Serge Fran&ccedil;ois, 13405@free.fr</a><br><img src="../src/courriel.gif" width="15" height="10" border="0" alt="Adresse &eacute;lectronique">&nbsp;<a href="mailto:selfhtml@selfhtml.com.fr">selfhtml@selfhtml.com.fr</a></p>    </body> </html> 
