Skip to content
Snippets Groups Projects
Commit 8a743a51 authored by Françoise Conil's avatar Françoise Conil
Browse files

Quelques corrections aux informations sur les encodages (typos et formulations)

parent 9f828d0d
No related branches found
No related tags found
No related merge requests found
# Encodages # Encodages
L'[encodage de caractères](https://en.wikipedia.org/wiki/Character_encoding) L'[encodage de caractères](https://en.wikipedia.org/wiki/Character_encoding),
c'est associer des nombres à des caractères graphiques dont les lettres c'est associer des nombres à des caractères graphiques dont les lettres
utilisées dans les différentes écritures. utilisées dans les différentes écritures.
...@@ -11,11 +11,11 @@ Aujourd'hui, l'encodage [utf-8](https://en.wikipedia.org/wiki/UTF-8) est ...@@ -11,11 +11,11 @@ Aujourd'hui, l'encodage [utf-8](https://en.wikipedia.org/wiki/UTF-8) est
largement utilisé. largement utilisé.
Auparavant, l'encodage [latin1](https://en.wikipedia.org/wiki/ISO/IEC_8859-1) Auparavant, l'encodage [latin1](https://en.wikipedia.org/wiki/ISO/IEC_8859-1)
était très utilisé. Il permettait d'avoir les caractères de base et une bonne était très utilisé. Il permettait d'avoir les caractères de base et plusieurs
partie des caractères accentués européens. caractères accentués européens.
Windows utilise historiquement un encodage similaire au latin1 mais différent Windows utilise historiquement un encodage similaire au latin1 mais différent
[Windows-1252](https://en.wikipedia.org/wiki/Windows-1252). : [Windows-1252](https://en.wikipedia.org/wiki/Windows-1252).
Les pages web que l'on a vues sont encodées en **utf-8**. Les pages web que l'on a vues sont encodées en **utf-8**.
...@@ -28,12 +28,12 @@ L'article [How does UTF-8 turn “😂” into “F09F9882”?](https://sethmlar ...@@ -28,12 +28,12 @@ L'article [How does UTF-8 turn “😂” into “F09F9882”?](https://sethmlar
explique le fonctionnement de cet encodage qui utilise un nombre variable explique le fonctionnement de cet encodage qui utilise un nombre variable
d'octets pour représenter les caractères. d'octets pour représenter les caractères.
Grâce à Unicode et utf-8, on peut utiliser tous les caaractères que l'on Grâce à Unicode et utf-8, on peut utiliser tous les caractères que l'on
souhaite dans une page, ce qui n'était pas possible avec les anciens encodages souhaite dans une page, ce qui n'était pas possible avec les anciens encodages
comme latin1 et autres anciens encodages. comme latin1.
Le caractère "è" est par exemple associé à l'entier `232`, soit `0xe8` en Prenons comme exemple, le caractère "è" associé à l'entier `232`, soit `0xe8`
[hexadécimal](https://fr.wikipedia.org/wiki/Syst%C3%A8me_hexad%C3%A9cimal) en [hexadécimal](https://fr.wikipedia.org/wiki/Syst%C3%A8me_hexad%C3%A9cimal)
```python ```python
>>> ord("è") >>> ord("è")
...@@ -46,13 +46,13 @@ En latin1, les caractères sont codés sur un octet et on verra bien `0xe8` pour ...@@ -46,13 +46,13 @@ En latin1, les caractères sont codés sur un octet et on verra bien `0xe8` pour
le caractère "è". le caractère "è".
```python ```python
>>> "è".encode("latin1" >>> "è".encode("latin1")
b'\xe8' b'\xe8'
``` ```
En utf-8, les caractères dont la valeur est supérieure ou égale à `0x80` sont En utf-8, les caractères dont la valeur est supérieure ou égale à `0x80` sont
codés sur 2 octets. Une partie des octets sert à indiquer quelle catégorie de codés sur 2 octets. Une partie des octets sert à indiquer sur combien d'octets
caractère est encodé. un caractère est encodé.
```python ```python
>>> "è".encode("utf-8") >>> "è".encode("utf-8")
...@@ -66,8 +66,9 @@ décodant comme du latin1, on obtient des caractères erronés : ouvrir ...@@ -66,8 +66,9 @@ décodant comme du latin1, on obtient des caractères erronés : ouvrir
Dans l'encodage du caractère "è" sur 2 octets, les 3 premiers bits du premier Dans l'encodage du caractère "è" sur 2 octets, les 3 premiers bits du premier
octet sont `110`, les 2 premiers bits du 2ème octet sont `10`. octet sont `110`, les 2 premiers bits du 2ème octet sont `10`.
Lorsque l'on récupère les 11 bits qui codent le nombre associé au caractère Lorsque l'on récupère les 11 autres bits qui codent le nombre associé au
"è", `00011101000` on retrouve bien l'entier 232 (0xe8 en hexadécimal). caractère "è" : `00011` + `101000` => `00011101000`, on retrouve bien l'entier
232 (0xe8 en hexadécimal).
```python ```python
>>> bin(0xc3a8) >>> bin(0xc3a8)
...@@ -87,7 +88,7 @@ utf-8 en latin1. ...@@ -87,7 +88,7 @@ utf-8 en latin1.
$ iconv -f utf-8 -t latin1 basic_utf8.html -o basic_latin1.html $ iconv -f utf-8 -t latin1 basic_utf8.html -o basic_latin1.html
``` ```
## Visualiser l'encodage utilisé ## Visualiser l'encodage utilisé
Pourquoi le codage est-il différent en latin1 et en utf-8 ? À cause de la Pourquoi le codage est-il différent en latin1 et en utf-8 ? À cause de la
longueur variable des caractères. longueur variable des caractères.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment