Exposé Code
Thèmes abordés
Exposé Code
Thèmes abordés
(À faire)
INTRODUCTION
Afin de pouvoir transmettre ou stocker tous les types de caractères alphanumériques
ou autres, des codes conventionnels ont été établis. Chaque caractère est associé à
son équivalent en code numérique. Il existe de nombreux codes et nous pouvons
citer pour mémoire le code ASCII, l'EBCDIC, L'UNICODE, l'UTF8…Dès lors, comment
trouver le meilleur code a un travail bien précis ? Pour répondre à cette
problématique, notre analyse s’articulera autour de la présentation, les
caractéristiques, les avantages, les limites et leur importance dans le monde de
l’informatique de trois codes à savoir : ASCII, EBCDIC et l’UNICODE.
Avantages de l’ASCII
Inconvénients de l’ASCII
Pour encoder les caractères en binaire, 7 bits (2^7= 128) suffisent, toutefois l’ASCII
utilise 8 bits. Le 8e bit permet de définir des caractères numérotés de 128 à 255 mais
la norme ASCII laisse la place vacante à d’autres caractères puisqu’elle ne définit des
caractères que de 0 à 127.
Si on regarde la table ASCII, on se rend compte que les caractères sont:
Des lettres de la langue anglaise et des caractères spéciaux courants.
Il n’y a pas d’autres caractères spécifiques à d’autres langues: é, è, à, ç, etc…
Il ne comporte aucune représentation de lettres dans d'autres langues telles que le
grec et l'arabe, ni de symboles mathématiques.
Transmissions en mode ASCII / Binaire
32 20 64 40 @ 96 60 `
33 21 ! 65 41 A 97 61 a
34 22 " 66 42 B 98 62 b
35 23 # 67 43 C 99 63 c
36 24 $ 68 44 D 100 64 d
37 25 % 69 45 E 101 65 e
38 26 & 70 46 F 102 66 f
39 27 ' 71 47 G 103 67 g
40 28 ( 72 48 H 104 68 h
41 29 ) 73 49 I 105 69 i
42 2A * 74 4A J 106 6A j
43 2B + 75 4B K 107 6B k
44 2C , 76 4C L 108 6C l
45 2D - 77 4D M 109 6D m
46 2E . 78 4E N 110 6E n
47 2F / 79 4F O 111 6F o
48 30 0 80 50 P 112 70 p
49 31 1 81 51 Q 113 71 q
50 32 2 82 52 R 114 72 r
51 33 3 83 53 S 115 73 s
52 34 4 84 54 T 116 74 t
53 35 5 85 55 U 117 75 u
54 36 6 86 56 V 118 76 v
55 37 7 87 57 W 119 77 w
56 38 8 88 58 X 120 78 x
57 39 9 89 59 Y 121 79 y
58 3A : 90 5A Z 122 7A z
59 3B ; 91 5B [ 123 7B {
60 3C < 92 5C \ 124 7C |
61 3D = 93 5D ] 125 7D }
62 3E > 94 5E ^ 126 7E ~
63 3F ? 95 5F _ 127 7F
Le code ASCII est étendu de 128 caractères supplémentaires qui font en total 256
caractères (8 bits), qui varient selon les ordinateurs, les programmes et les polices.
Les plus courants sont le code ASCII étendu OEM, et le code ASCII étendu ANSI.
L’objectif principal était de permettre l’utilisation des caractères accentués, absents
de la table ASCII basique. Chaque caractère y est représenté par une chaine de 8 bits.
En fonction de la langue utilisée, les caractères spéciaux peuvent recevoir un code
entre 128 et 255. On parle ainsi du code ASCII étendu. Ce code ASCII étendu est
utilisé dans les pages HTML, diffusées sur le réseau Internet.
Avant l'Ascii Dans les années 1940 apparaissent les ordinateurs qui remplacent les
machines comptables mais en gardent notamment les cartes perforées et leurs
codes. Mais, très vite, la plus grande confusion règne en matière de codage des
informations de façon interne (ce qui n'était pas très gênant) mais aussi externe,
rendant difficile toute communication d'un ordinateur à l'autre. Ceci était même vrai
pour les diverses machines d'un constructeur. Le géant de l'époque, IBM, est ainsi
amené à définir peu après 1955 le codage BCD. – Le codage BCD (Binary Coded
Decimal) est un code à 6 bits (donc 64 caractères), basé sur celui des cartes
perforées. Il ne comprenait que les lettres majuscules, les chiffres et ponctuations. Il
a donc été abondamment utilisé sur les premiers ordinateurs d'IBM et a servi de base
à son successeur EBCDIC.
Définition
EBCDIC Extended code décimal codé binaire Interchange signifie en français codage
binaire étenduCode d'échange décimal est un huit bits codage de caractères utilisé
principalement sur les grands systèmes IBM et IBM ordinateur médium systèmes
d'exploitation. Il descendait du code utilisé avec les cartes perforées et du code
décimal codé binaire à six bits correspondant utilisé avec la plupart des périphériques
informatiques d'IBM de la fin des années 1950 et du début des années 1960. EBCDIC
a été conçu en 1963 et 1964 par IBM et a été annoncé avec la sortie de la
gamme IBM System / 360 d'ordinateurs mainframe. Il s'agit d'un codage de
caractères à huit bits, développé séparément du schéma de codage ASCII à sept bits.
Il a été créé pour étendre le code d'échange décimal codé binaire (BCD) existant,
ou BCDIC. Au moment de sa réalisation, l'EBCDIC offrait l'avantage d'une relative
facilité d'insertion des données au moyen de cartes perforées; car un tel soutien est
maintenant complètement obsolète, dans les ordinateurs modernes. Il manque un
avantage d'ordre technique par rapport à la page de code basé sur le codage ASCII
tels que les différents ISO-8859 et Unicode. La plupart des pages de code EBCDIC ne
permet pas l'utilisation simultanée de plus de deux langues (anglais et une seconde
langue) dans chaque fichier de base de données ou d'un texte.
Il s’agit d’un mode de codage des caractères sur 8 bits créé par IBM à l’époque des
cartes perforées. De nombreuses versions existent, bien souvent incompatibles entre
elles, ce qui est en partie la cause de son abandon. On l’utilise encore de nos jours,
mais presque essentiellement pour des raisons de rétrocompatibilité.
Il existe un format de transformation Unicode orienté EBCDIC appelé UTF-EBCDIC
proposé par le consortium Unicode, conçu pour permettre une mise à jour facile du
logiciel EBCDIC pour gérer Unicode, mais pas destiné à être utilisé dans des
environnements d'échange ouverts. Même sur les systèmes avec un support EBCDIC
étendu, il n'a pas été populaire.
Caractéristiques
Les pages de code basé sur ASCII et EBCDIC ne sont pas compatibles les uns avec les
autres. Parce que les ordinateurs sont capables de traiter uniquement les données
numériques, les deux conventions attribuent des caractères spécifiques à ces chiffres.
Les valeurs numériques identiques sont donc interprétées comme des caractères
différents en fonction de la page de code utilisé. Pour utiliser les données stockées
dans la conversion EBCDIC entre les pages de code est nécessaire pour afficher
correctement les informations sur les ordinateurs basés sur le codage ASCII, comme
commun ordinateur personnel. Il existe plusieurs versions de EBCDIC, adaptées aux
besoins des différents pays. Certains pays asiatiques utilisent également l'extension à
deux octets qui permet l'affichage central chinois, japonais et coréen.
Inconvénients
EBCDIC présente plusieurs inconvénients. Comparé à ASCII, le même caractère qui
nécessite 7 bits à représenter en ASCII prendra 8 bits en EBCDIC. Par conséquent,
EBCDIC est moins efficace qu'ASCII. De plus, lors de la disposition des caractères,
EBCDIC regroupe 9 caractères à la fois. De plus, il n’est pas compatible avec d’autres
encodages tels que Unicode.
Les bandes et cartes perforées ont cependant continué à être utilisées avec l’EBCDIC
jusque vers les années 1990, par exemple en Turquie pour les échanges de données
militaires alors que les problèmes de compatibilité des systèmes d’enregistrement
magnétiques ou des réseaux étaient encore loin d’être tous résolus.
PRÉSENTATION DE UNICODE
Histoire
Définition
L'Unicode désigne un système de codage utilisé pour l'échange de contenus à
l'échelle internationale, dans différentes langues, en faisant fi de la langue, de la
plateforme et du logiciel utilisé pour cet échange.
Développé par le Consortium Unicode, une organisation privée sans but lucratif,
l'Unicode peut se résumer à un codage de caractères sur 16 bits. Il permet de coder
l'ensemble des caractères couramment utilisés dans les différentes langues de la
planète en spécifiant un nombre unique pour chacun de ces caractères.
Au total, l'Unicode regroupe plus de 120 000 caractères parmi lesquels figurent les
lettres des différents alphabets, mais aussi des symboles mathématiques, chinois,
etc. Il couvre environ une centaine d'écritures.
Ce projet fut initié en 1987 par Becker, Collins et Davis. L’objectif était alors de
construire un code universel sur 16 bits, permettant donc 65,536 (216) codes
différents. En 1991 est fondé le consortium Unicode, comprenant des linguistes et
autres spécialistes de nombreux horizons. La norme Unicode est, en plus d’un
standard de codage de caractères, un immense rapport des recherches mondiales sur
les langues utilisées et ayant été utilisées à travers le monde. Unicode intervient là où
les diverses extensions du code ASCII, dont les ISO 8859, présentent l’inconvénient
d’être incompatibles entre elles.
Il regroupe ainsi la quasi-totalité des alphabets existants (arabe, arménien, cyrillique,
grec, hébreu, latin, …) et est compatible avec le code ASCII. Le codage sur 4 octets
permet la représentation de plus de 4 milliards de caractères (232). On y retrouve le
code ASCII, auquel on a notamment ajouté les jeux complets de caractères coréens,
japonais et chinois, mais aussi les symboles mathématiques ou encore les écritures
anciennes telles que l’écriture cunéiforme ou le linéaire B . Y compris ceux qui ne
s'appliquent plus. Hiéroglyphes égyptiens, runes germaniques, écriture maya,
cunéiformes et alphabets d'anciens états. La notation des mesures et des poids, la
notation musicale, les concepts mathématiques sont présentés. Aujourd’hui, le
codage le plus universel est le UTF-8 (Universal Character Set – 8 bits), utilisé par une
très grande majorité de sites web dans le monde.
Depuis sa version 3, Python utilise Unicode pour le codage des caractères.
Avantages
Un support d'Unicode spécifique à certaines plates-formes est également intégré par
les systèmes modernes (Java, Microsoft Windows, GNU/Linux, bibliothèques
standards C/C++, Python, etc.).
Unicode a pour objet de rendre un même texte utilisable à l'identique sur des
systèmes informatiques totalement différents.
si tout le monde utilise UNICODE, il n'y a plus de problèmes, tout le monde peut
écrire dans sa langue maternelle en utilisant la même convention.
les pauvres gens qui font de la traduction de documents d'une langue dans une autre
n'auront plus à jongler en permanence avec les divers iso-8859 pour rédiger leur
travail.
- UTF-8
Comme indiqué précédemment, le gros intérêt d’UTF-8 est d’éviter le gaspillage
d’espace causé par l’utilisation d’UTF-16. Il est utilisé en majorité pour l’encodage de
fichiers HTML ou XML.
L’autre avantage d’UTF-8 est d’apporter une compatibilité avec l’encodage ASCII
contrairement à UTF-16.
Inconvénients
- Taille variable:
Les caractères sont représentés en UTF-8 par des séquences d’octets de taille
variable, ce qui rend certaines opérations sur les chaînes de caractères plus
compliquées : le calcul du nombre de caractères ; le positionnement à une distance
donnée (exprimée en caractères) dans un fichier texte et en règle générale toute
opération nécessitant l’accès au caractère de position N dans une chaîne.
- Efficacité:
Pour les langues utilisant beaucoup de caractères extérieurs à US-ASCII, UTF-8 occupe
sensiblement plus d’espace.
- Séquences invalides:
Par son système de codage, il était éventuellement possible de représenter un code
de différentes manières en UTF-8, ce qui pouvait poser un problème de sécurité.
La différence principale entre ASCII et Unicode est que l'ASCII représente les lettres
minuscules (az), les lettres majuscules (AZ), les chiffres (0-9) et des symboles tels que
les signes de ponctuation, tandis que l'Unicode représente des lettres anglaises,
arabes, grecques, etc., des symboles mathématiques, des scripts historiques et des
caractères emoji une large gamme de caractères qu'ASCII.
ASCII et Unicode sont deux normes de codage en communication électronique. Ils
servent à représenter du texte dans des ordinateurs, des appareils de
télécommunication et d’autres équipements. ASCII code 128 caractères. Il comprend
des lettres anglaises, des chiffres de 0 à 9 et quelques autres symboles. Par contre,
Unicode couvre un plus grand nombre de caractères qu'ASCII. Il représente la plupart
des langues écrites dans le monde. Unicode code les lettres de langue, les chiffres et
un grand nombre d'autres symboles. En bref, Unicode est un sur-ensemble d'ASCII.
. De plus, ASCII est utilisé dans les arts graphiques pour représenter des images en
utilisant des caractères..
L’inconvénient d’ASCII est qu’il ne peut représenter que 128 caractères. Il n'a pas de
représentation pour la plupart des symboles mathématiques et autres.
Unicode est disponible en trois types d’encodage. Ils sont UTF-8, UTF-16 et UTF -32.
UTF utilise 8 bits par caractère, UTF-16 utilise 16 bits par caractère et UTF-32 utilise
32 bits pour un caractère. En UTF-8, les 128 premiers caractères sont les caractères
ASCII. Par conséquent, ASCII est valide dans UTF-8. Unicode est généralement utilisé
pour l'internationalisation et la localisation de logiciels. Cette norme est également
utilisée dans les systèmes d'exploitation, XML, .NET Framework et les langages de
programmation tels que Java. Unicode est un sur-ensemble d'ASCII.
Le code ASCII ou American Standard pour l'échange d'informations est une norme de
codage de caractères pour les communications électroniques. Unicode est une norme
de l'industrie informatique pour un codage, une représentation et une gestion
cohérentes du texte exprimé dans la plupart des systèmes d'écriture du monde..
ASCII signifie Code américain normalisé pour l'échange d'informations. Unicode
signifie Universal Character Set.
ASCII contient des représentations pour les chiffres, les lettres anglaises et d’autres
symboles. Il supporte 128 caractères. Unicode prend en charge une large gamme de
caractères. C'est la principale différence entre ASCII et Unicode.
De plus, l'ASCII utilise 7 bits pour représenter un caractère, tandis que l'Unicode
utilise 8 bits, 16 bits ou 32 bits, selon le type de codage.
Unicode nécessite plus d'espace qu'ASCII.
- Domaines d’application
Même aujourd’hui, ASCII est encore largement utilisé, bien qu’UTF-8 soit
probablement devenu plus important pour la représentation du texte. Cependant, ce
n’est qu’aux alentours de 2008 que l’Unicode a remplacé le codage de caractères plus
ancien dans le World Wide Web.
L’avantage d’UTF-8 est que le code est virtuellement rétro-compatible : ASCII est un
sous-ensemble d’UTF-8 et donc les 128 premiers caractères sont identiques. Étant
donné que l’ASCII peut être considéré comme le plus petit dénominateur commun de
la plupart des nouveaux formulaires de codage, l’ancien codage est toujours utilisé
dans les courriels et les URL.
Nota bene
Les utilisateurs peuvent maintenant aussi utiliser Unicode pour créer des emails, et
les noms de domaine peuvent même être utilisés aujourd’hui grâce aux noms de
domaine internationalisés. Dans les deux cas, cependant, le texte doit être converti
au format ASCII avant de pouvoir être transféré. Ceci est fait automatiquement, de
sorte que l’utilisateur ne remarque rien.
Il existe d'autres normes que l'ASCII, comme l'Unicode par exemple, qui présentent
l'avantage de proposer une version unifiée des différents encodages de caractères
complétant l'ASCII mais aussi de permettre l'encodage de caractères autres que ceux
de l'alphabet latin. Le codage UTF8 de l'Unicode est une extension d'ASCII utilisant le
8e bit.
Sous Windows, vous pouvez saisir des caractères Unicode, et donc aussi des
caractères ASCII, à l’aide d’une combinaison de touches. Pour ce faire, maintenez la
touche Alt enfoncée et saisissez la valeur décimale du caractère à l’aide du pavé
numérique.
De nombreuses langues contiennent des symboles qui n’ont pas pu être condensés
dans le jeu ACSII étendu de 256 caractères. Ainsi, il existe des variantes ASCII et
Unicode afin d’inclure des caractères régionaux et des symboles.
Certains des programmes Microsoft Office, tels que PowerPoint et InfoPath, ne
peuvent pas convertir les codes Unicode en caractères. Si vous avez besoin d’un
caractère Unicode et que vous utilisez un des programmes qui ne prend pas en
charge les caractères Unicode, utilisez la Carte de caractères pour entrer les
caractères dont vous avez besoin.
Importance de Unicode
Il définit une manière cohérente de coder des textes multilingues et facilite l’échange
de données textuelles. Obligatoire pour la plupart des nouveaux protocoles de
l’Internet XML, HTML, WML, Corba 3.0, LDAP, etc., mis en œuvre dans tous les
systèmes d’exploitation et langages informatiques modernes Exemples : Java,
ECMAScript (Javascript), MS Windows 2000 et…, Unicode est la base de tout logiciel
qui veut fonctionner aux quatre coins du monde.
Grâce à Unicode, l’industrie informatique peut assurer la pérennité des données
textuelles tout en évitant la prolifération de jeux de caractères et en augmentant
l’interopérabilité des données. Enfin, Unicode simplifie le développement de logiciels
et en réduit les coûts. En effet, Unicode permet de coder tous les caractères utilisés
par toutes les langues écrites du monde (plus d’un million de caractères sont réservés
à cet effet). Tous les caractères, quelle que soit la langue dans laquelle ils sont
utilisés, sont accessibles sans aucune séquence d’échappement. Le codage de
caractère Unicode traite les caractères alphabétiques, les caractères idéographiques
et les symboles de manière équivalente, avec comme conséquence qu’ils peuvent se
côtoyer dans n’importe quel ordre avec une égale facilité.
Le standard Unicode attribue à chacun de ses caractères un numéro [7][7]Une
« valeur scalaire Unicode », dans le jargon d’Unicode. et un nom. À ce titre, il ne
diffère guère des autres standards ou normes de codage de caractères. Cependant
Unicode fournit d’autres renseignements cruciaux afin de s’assurer que le texte codé
sera lisible : la casse des caractères codés, leur directionalité et leurs propriétés
alphabétiques. Unicode définit également des renseignements sémantiques et
comprend des tableaux de correspondance de casse ou des conversions entre
Unicode et les répertoires de divers autres jeux de caractères importants.
À l’heure actuelle, les données Unicode peuvent être codées sous trois formes
principales : une forme codée sur 32 bits (UTF-32), une forme sur 16 bits (UTF-16) et
une forme de 8 bits (UTF-8) conçue pour faciliter son utilisation sur les systèmes ASCII
préexistants. Le standard Unicode est identique à la norme internationale ISO/CEI
10646 en ce qui concerne l’affectation des caractères (leur numéro) et leurs
noms .Toute application qui se conforme à Unicode se conforme donc à l’ISO/CEI
10646.
Conclusion
En somme, l’on doit toujours choisir l’encodage de caractère UTF-8 pour votre contenu
ou vos données. Cet encodage Unicode est un bon choix, car vous pouvez utiliser un
encodage unique pour composer avec presque tous les caractères que vous êtes
susceptibles de rencontrer. Cela simplifie grandement la tâche. Utiliser l’Unicode dans
votre système évite également de faire un suivi de différents encodages de caractères
et de les convertir.
L’UTF-8 est le moyen le plus largement utilisé pour représenter le texte Unicode dans
les pages Web et vous devriez toujours utiliser l’UTF-8 pour créer vos pages Web et vos
bases de données. Mais en principe, l’UTF-8 n’est qu’une façon parmi d’autres
d’encoder les caractères Unicode. En d’autres mots, un seul point de code dans le
répertoire de caractères Unicode peut en réalité être organisé en différentes
séquences d’octets, selon l’encodage qui a été utilisé pour le document.
BIBLIOGRAPHIE
(en) American Standard Code for Information Interchange, AMERICAN STANDARDS
ASSOCIATION, 17 juin 1963, 12 p. (lire en ligne [archive])
[Link]
[Link]
[Link]
[Link]