ISO 8859-1

Un article de Wikipédia, l'encyclopédie libre.

La norme ISO 8859-1, dont le nom complet est ISO/CEI 8859-1, et qui est souvent appelée Latin-1, forme la première partie de la norme internationale ISO/CEI 8859, qui est une norme de l'Organisation internationale de normalisation pour le codage des caractères en informatique.
Elle définit ce qu'elle appelle l'alphabet latin numéro 1, qui consiste en 191 caractères de l'alphabet latin, chacun d'entre eux étant codé par un octet (soit 8 bits). ISO 8859-1 reprend le codage des caractères imprimables d'US-ASCII.

Dans les pays occidentaux, cette norme est utilisée par de nombreux systèmes d'exploitation, dont Unix, Windows ou AmigaOS. Elle a donné lieu à quelques extensions et adaptations, dont Windows-1252 et ISO 8859-15. La distinction entre ASCII, ISO 8859-1, ISO 8859-15, Windows-1252 et MacRoman est une source de confusion parmi les développeurs de programmes informatiques.

Sommaire

[modifier] Principe

En première approximation, ISO 8859-1 étend US-ASCII en ajoutant les caractères accentués.

L'ISO 8859-1 recouvre les caractères utilisés par les langues européennes suivantes : albanais, allemand, anglais, basque, catalan, danois, gaélique écossais, espagnol, féringien, finnois, français (sauf caractères œ, Œ et Ÿ qui n'ont pas été inclus car l'employeur de l'un des rédacteurs de la norme, un grand fabricant d'imprimantes, n'avait pas inclus ces caractères dans ses imprimantes[réf. nécessaire]), islandais (sauf caractères „ et “), gaélique irlandais, italien, néerlandais, norvégien, portugais, romanche et suédois. L'afrikaans et le swahili sont également couverts. Cette norme est donc utilisée en Europe de l'Ouest, en Amérique, en Australie et dans une grande partie de l'Afrique.

Les 191 caractères de ISO 8859-1 sont graphiques, et donc compatibles avec la majorité des navigateurs web. Ils sont représentés sous forme de glyphes (œil) dans le tableau suivant. Les titres des lignes et des colonnes indiquent les codes hexadécimaux correspondant à chaque caractère, par exemple, le code hexadécimal de « L » est 4C, soit 01001100 en binaire ou 76 en décimal.

ISO/CEI 8859-1
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x caractères de contrôle et divers non imprimables
1x
2x  ! " # $  % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9  :  ; < = >  ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~
8x caractères de contrôle et divers non imprimables
9x
Ax ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª «  ¬ ­ ® ¯
Bx ° ± ² ³ ´ µ ¸ ¹ º  » ¼ ½ ¾ ¿
Cx À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
Dx Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
Ex à á â ã ä å æ ç è é ê ë ì í î ï
Fx ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

Dans cette table, 20 en hexadécimal (32 en décimal) est le code correspondant au caractère « espace » (souvent représenté par SP, de space en anglais), et A0 (160) est le code de l'espace insécable (souvent représenté par NBSP, de no-break space en anglais). AD (173) est un petit tiret, qui n'apparaît pas du tout dans certains navigateurs (souvent représenté par SHY, de soft hyphen en anglais). Les codes 00 (0) à 1F (31) et 7F (127) à 9F (159) ne sont pas assignés en ISO 8859-1.

[modifier] ISO 8859-1 par rapport à ISO-8859-1

L'IANA (Internet Assigned Numbers Authority) a validé, pour une utilisation sur Internet, l'ISO-8859-1 (remarquez le tiret supplémentaire), un sur-ensemble de l'ISO/CEI 8859-1.

Cette carte de caractères, ou jeu de caractères, ou page de codes, supplée l'ISO/CEI 8859-1 en attribuant des caractères de contrôle aux valeurs 00 à 1F, 7F, et 80 à 9F. On obtient de cette manière 256 caractères recouvrant toutes les valeurs 8 bits possibles.

L'IANA autorise l'utilisation des alias suivants pour l'ISO-8859-1 (à utiliser indépendamment de toute capitalisation) :

  • ISO_8859-1:1987
  • ISO_8859-1
  • ISO-8859-1
  • iso-ir-100
  • csISOLatin1
  • latin1
  • l1
  • IBM819
  • CP819

Le nom Latin-1 est une appellation informelle non reconnue par l'organisation ISO ou IANA, mais utilisée par certains logiciels.

Le tableau suivant montre l'ISO-8859-1, avec en texte souligné les abréviations représentant les caractères de contrôle et les espaces.

ISO-8859-1
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1x DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2x SP  ! " # $  % & ' ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9  :  ; < = >  ?
4x @ A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z [ \ ] ^ _
6x ` a b c d e f g h i j k l m n o
7x p q r s t u v w x y z { | } ~ DEL
8x PAD HOP BPH NBH IND NEL SSA ESA HTS HTJ VTS PLD PLU RI SS2 SS3
9x DCS PU1 PU2 STS CCH MW SPA EPA SOS SGCI SCI CSI ST OSC PM APC
Ax NBSP ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª «  ¬ ­ ® ¯
Bx ° ± ² ³ ´ µ ¸ ¹ º  » ¼ ½ ¾ ¿
Cx À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
Dx Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
Ex à á â ã ä å æ ç è é ê ë ì í î ï
Fx ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

Il existe d'autres parties de la norme ISO/CEI 8859 à laquelle correspond un jeu de caractères validé par l'IANA, par exemple l'ISO/CEI 8859-10 (alphabet latin no 6) ressemble fortement au jeu de caractères ISO-8859-10.

Chacune des normes ISO/CEI 8859-x codifie les caractères de la même manière : elle couvre la plage ASCII (20-7E) plus 96 caractères supplémentaires dans la plage A0-FF, pour un total de 191 caractères. Les ensembles ISO-8859-x ajoutent tous les caractères de contrôle ISO 646 C0 dans la plage de 00 à 1F, et des caractères de contrôle supplémentaires dans la plage 7F-9F, offrant ainsi un ensemble de 256 caractères. L'ISO-8859-1 est le seul, parmi tous ces ensembles, dont la codification des caractères soit équivalente aux 256 premiers codes de l'Unicode.

ISO-8859-1 est le codage standard utilisé par le système X Window sur la plupart des machines UNIX.

[modifier] Codages de caractères apparentés

[modifier] MacRoman

Les ordinateurs Apple Macintosh les plus anciens utilisent un codage nommé MacRoman, qui diffère de l'ISO 8859-1 de par les 32 premiers et 127 derniers caractères, mais inclut tout de même tous les caractères présents dans l'ISO 8859-1, à l'exception du tiret invisible. En revanche, le MacRoman inclut de nombreux caractères qui ne sont pas dans l'ISO 8859-1. Le glyphe Euro a remplacé le symbole monétaire générique précédent.

[modifier] Windows-1252

Sur Microsoft Windows, quelques glyphes ont été ajoutés entre 0x80 et 0x9F. Cette extension (qui remplace ou annule tous les caractères de contrôle G1 qui sont assignés à ces positions dans le codage ISO-8859-1 et réservés dans la norme ISO/CEI 8859-1) est connue sur Internet en tant que Windows-1252.

[modifier] ISO 8859-15

L'ISO 8859-15, notamment introduite pour prendre en charge le caractère de l'euro, gère également mieux le français car les caractères ¤, ¦, ¨, ´, ¸, ¼, ½ et ¾ ont été remplacés par €, Š, š, Ž, ž, Œ, œ et Ÿ. En français, l'ISO 8859-1 reste cependant nettement plus utilisée, avec OE et oe au lieu de Œ et œ, alors que le Ÿ n'est utilisé que par quelques noms propres. Le standard Unicode est généralement utilisé lorsqu'il est nécessaire de dépasser les limites de ISO 8859-1, notamment, symboles mathématiques, phonétiques et caractères non-latins.

[modifier] Limitations

La limitation principale de ce codage de caractères sur un octet est la nécessité d'utiliser plusieurs tables pour couvrir plusieurs alphabets. Certains documents sont typés à l'aide par exemple de méta-données, dans ce cas une table de caractère et une seule est associée à chaque document. Par exemple pour un document HTML la balise <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" /> indique que le document utilise la table des caractères ISO-8859-1. Autre exemple avec un document XML et la balise <?xml version="1.0" encoding="iso-8859-1"?> indiquant l'encodage des caractères utilisé.

Quand cela n'est pas le cas c'est la table de caractère du système d'exploitation qui est utilisée. Si elle ne correspond pas à celle du document l'affichage est incohérent. Le problème est alors l'impossibilité de mélanger dans un même document des alphabets qui ne sont pas définis par la même table. Par exemple le français et l'hébreu.

La solution est de passer à Unicode.

[modifier] Voir aussi

[modifier] Liens internes

[modifier] Liens externes