![]()
![]()
![]()
![]()
![]()
![]()
Suivant: Les codes ISO-Latin-1 Début: Les jeux de caractères Précédent: Les normes
Paragraphes
Le code ascii
Le jeu de caractères est formé d'un ensemble de caractères de commandes et de caractères graphiques. L'ensemble des caractères de commande est formé de six familles :
![]()
- commandes de format
Le nom carriage return arrive tout droit de l'époque des machines à écrire, où la position d'écriture était fixe et où le papier était porté sur un chariot (carriage) mobile. Le caractère carriage return est la commande permettant de mettre la position d'écriture en début de ligne, sans changer de ligne. Le caractère line feed met la position d'écriture sur la ligne suivante, sans aller en début de ligne. Pour obtenir l'effet de << passage à la ligne >> , il faut donc un caractère carriage return suivi d'un caractère line feed (ou l'inverse). Dans le système UNIX, le caractère choisi par convention comme signifiant << passage à la ligne >> est le caractère line feed, et c'est à la charge des pilotes de périphériques de remplacer ce caractère logique par la suite de caractères nécessaires pour obtenir un passage à la ligne suivante. Prenons le cas d'un pilote de terminal écran clavier :
commande nom carriage return CR line feed LF backspace BS horizontal tabulation HT vertical tabulation VT space SP form feed FF
- -
- en entrée : la convention habituelle est de faire un passage à la ligne an appuyant sur la touche carriage return. Le pilote de terminal :
- 1.
- envoie au programme qui réalise la lecture un line feed.
- 2.
- envoie à l'écran (en tant qu'écho de ce carriage return) la séquence line feed suivi de carriage return.
- -
- en sortie : le pilote de terminal transforme les line feed en line feed suivi de carriage return
Par abus de langage, dans le monde C et/ou UNIX, on utilise souvent le terme de newline pour désigner en réalité line feed. Mais qu'il soit bien clair que la norme ANSI ne comporte pas de caractère appelé newline.
![]()
- commandes d'extension du code
commande nom shift out SO shift in SI escape ESC Le caractère escape a été largement utilisé par les concepteurs de terminaux écran-clavier et d'imprimantes pour augmenter le nombre de commandes. La technique consiste à définir des séquences d'échappement formées du caractère escape suivi d'un certains nombre de caractères ordinaires qui perdent leur signification habituelle. Voici quelques séquences d'échappement du terminal écran-clavier VT100 :
séquence sémantique escape [2A monter le curseur de 2 lignes escape [4B descendre le curseur de 4 lignes escape [3C décaler le curseur de 3 positions vers la droite escape [1D décaler le curseur de 1 position vers la gauche ![]()
- commande de séparation
commande nom file separator FS group separator GS record separator RS unit separator US end of medium EM Ces caractères ont pour but de séparer les différentes unités d'information sur bandes magnétiques. Ils sont obsolètes de nos jours, les programmes d'archivage (tar, cpio) utilisant leur propre format sans faire appel à ces caractères.
![]()
- commandes pour la communication synchrone
commande nom start of header SOH start of text STX end of text ETX end of transmission EOT end of transmitted block ETB enquiry ENQ positive acknowledge ACK negative acknowledge NAK synchronisation SYN data link escape DLE null NUL Les 10 premières commandes ont été crées pour construire des trames de communication entre machines reliées par des lignes synchrones. Elles sont complètement obsolètes de nos jours, où les communications se font grâce à des réseaux dont les trames n'utilisent pas ces caractères.
La dernière commande null était utile à l'époque des téléimprimeurs dont le temps de retour du chariot était plus grand que le temps d'impression d'un caractère quelconque. Après avoir envoyé un carriage return, il fallait envoyer plusieurs null (en fonction de la vitesse de la ligne) pour être sûr que le chariot était bien revenu en début de ligne !
![]()
- commandes de périphérique
commande nom device control 1 DC1 device control 2 DC2 device control 3 DC3 device control 4 DC4 Ces caractères ont été prévus pour donner des ordres spécifiques à certains périphériques. A l'époque des téléimprimeurs, ceux-ci possédaient un lecteur-perforateur de ruban papier. Les codes device control étaient utilisés pour commander ce lecteur-perforateur.
De nos jours device control 3 et device control 1 sont utilisés sous les noms respectifs de XON et XOFF pour réaliser du contrôle de flux. Les caractères device control 3 et device control 1 sont affectés aux touches Control-q et Control-s du clavier. Lorsqu'un pilote de terminal écran-clavier gère le contrôle de flux, l'utilisateur peut taper Control-s pour faire stopper une sortie trop rapide (pour se donner le temps de la lire sur l'écran), et la faire continuer en tapant Control-q.
![]()
- commandes diverses
commande nom cancel CAN substitute SUB delete DEL bell BEL Il y a deux caractères qui sont utilisés couramment pour réaliser la fonction d'effacement du caractère (erroné) précédent : back space et delete. En fonction du caractère qui est le plus facile a taper sur son clavier, l'utilisateur désirera choisir l'un ou l'autre. Le caractère back space peut sur tout clavier s'obtenir par Control-h, alors qu'il n'y a pas de Control-quelque-chose correspondant au caractère delete. Selon les claviers, il peut y avoir une touche marquée back space, et/ou une touche marquée delete, ou une touche marquée
qui génère back space ou delete, et qui peut, ou ne peut pas, être configurée par le set-up du terminal pour générer au choix back space ou delete !
Un utilisateur UNIX utilise la commande stty pour prévenir le système du caractère qu'il désire pour réaliser la fonction d'effacement de caractère.
Les codes ascii en octal
code 1 2 3 4 5 6 7 000 NUL SOH STX ETX EOT ENQ ACK BEL 010 BS HT LF VT NP CR SO SI 020 DLE DC1 DC2 DC3 DC4 NAK SYN ETB 030 CAN EM SUB ESC FS GS RS US 040 SP !
"
#
$
%
&
'
050 (
)
*
+
,
-
.
/
060 0
1
2
3
4
5
6
7
070 8
9
:
;
<
=
>
?
100 @
A
B
C
D
E
F
G
110 H
I
J
K
L
M
N
O
120 P
Q
R
S
T
U
V
W
130 X
Y
Z
[
\
]
^
_
140 `
a
b
c
d
e
f
g
150 h
i
j
k
l
m
n
o
160 p
q
r
s
t
u
v
w
170 x
y
z
{
|
}
~
DEL Les codes ascii en hexadécimal
code 1 2 3 4 5 6 7 8 9 A B C D E F 0x00 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT NP CR SO SI 0x10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 0x20 SP !
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0x30 0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
0x40 @
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
0x50 P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
0x60 `
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
0x70 p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL Les codes ascii en décimal
code 1 2 3 4 5 6 7 8 9 NUL SOH STX ETX EOT ENQ ACK BEL BS HT 10 LF VT NP CR SO SI DLE DC1 DC2 DC3 20 DC4 NAK SYN ETB CAN EM SUB ESC FS GS 30 RS US SP !
"
#
$
%
&
'
40 (
)
*
+
,
-
.
/
0
1
50 2
3
4
5
6
7
8
9
:
;
60 <
=
>
?
@
A
B
C
D
E
70 F
G
H
I
J
K
L
M
N
O
80 P
Q
R
S
T
U
V
W
X
Y
90 Z
[
\
]
^
_
`
a
b
c
100 d
e
f
g
h
i
j
k
l
m
110 n
o
p
q
r
s
t
u
v
w
120 x
y
z
{
|
}
~
DEL
![]()
![]()
![]()
![]()
![]()
Suivant: Les codes ISO-Latin-1 Début: Les jeux de caractères Précédent: Les normes
30/9/1997