Outils pour utilisateurs

Outils du site


nsi:premiere:ascii_unicode

Encodages : ASCII et Unicode

Les transistors, les circuits mémoires… stockent des entités binaires, des 0 et des 1. On a vu que l'on pouvait regrouper ses bits pour former des mots – 1 octet est un mot de 8 bits.

Comment va-t-on stocker des caractères ?

Table ASCII

American Standard Code for Information Interchange

128 caractères, pas de caractères accentués, beaucoup de caractères de contrôle liés à la technologie de l'époque – années 60.

Certains sont spécialement important néanmoins :

  • HT pour Horizontal Tab, c'est à dire une tabulation que l'on note généralement '\t'.
  • LF pour Line Feed, c'est à dire une fin de ligne que l'on note généralement '\n'.
  • CR pour Carriage Return, c'est à dire le retour charriot ce qui correspond à un retour à la ligne que l'on note généralement '\r'.
  • SP pour SPace, c'est à dire l'espace ' '.

Il peut y avoir, selon le système et le langage, des variations pour indiquer un retour à la ligne. Autrefois, c'était '\r\n' ce que l'on retrouve dans certains échanges internet. Parfois, '\n' suffit, comme en Python.

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

Unicode

Codage international contenant environ 140 000 caractères pour tous les alphabets.

  • Les 128 premiers correspondent à ASCII
  • Les 256 premiers correspondent à ISO 8859-1 = Latin-1 – lui-même compatible avec ASCII

Un caractère est Unicode codé sur 4 octets.

Le plus souvent, pour améliorer les performances, Unicode n'est pas utilisé directement. Pour les textes on utilise des adaptation, notamment UTF-8, permettant d'occuper moins de 4 octets par caractère. On verra plus tard.

Unicode et Python

En Python, on utilise directement Unicode ce qui permet d'écrire à peu près n'importe quel caractère.

>>> ord('c')    # renvoie le code Unicode du caractère
99
>>> ord('и')
1080
>>> chr(99)     # opération inverse : code -> caractère
'c'
>>> chr(1080)
'и'
nsi/premiere/ascii_unicode.txt · Dernière modification : de goupillwiki