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

Complément sur l'encodage utf-8 du caractère 'è'

parent 9effdd41
No related branches found
No related tags found
No related merge requests found
...@@ -46,8 +46,8 @@ En latin1, les caractères sont codés sur un octet et on verra bien `0xe8` pour ...@@ -46,8 +46,8 @@ 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
>>> "3ème".encode("latin1") >>> "è".encode("latin1"
b'3\xe8me' 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
...@@ -55,14 +55,29 @@ codés sur 2 octets. Une partie des octets sert à indiquer quelle catégorie de ...@@ -55,14 +55,29 @@ codés sur 2 octets. Une partie des octets sert à indiquer quelle catégorie de
caractère est encodé. caractère est encodé.
```python ```python
>>> "3ème".encode("utf-8") >>> "è".encode("utf-8")
b'3\xc3\xa8me' b'\xc3\xa8'
``` ```
C'est pourquoi quand on essaie de lire un fichier encodé en utf-8 en le C'est pourquoi quand on essaie de lire un fichier encodé en utf-8 en le
décodant comme du latin1, on obtient des caractères erronés : ouvrir décodant comme du latin1, on obtient des caractères erronés : ouvrir
`basic_mauvais_latin1.html`. `basic_mauvais_latin1.html`.
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`.
Lorsque l'on récupère les 11 bits qui code le nombre associé au caractère "è",
`00011101000` on retrouve bien l'entier 232 (0xe8 en hexadécimal).
```python
>>> bin(0xc3a8)
'0b1100001110101000'
--- --
>>> hex(0b00011101000)
'0xe8'
```
## Convertir un fichier utf-8 en latin1 ## Convertir un fichier utf-8 en latin1
J'utilise [iconv](https://doc.ubuntu-fr.org/iconv) pour convertir notre fichier J'utilise [iconv](https://doc.ubuntu-fr.org/iconv) pour convertir notre fichier
......
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