Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
Code Web par étapes
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Françoise Conil
Code Web par étapes
Commits
8a743a51
Commit
8a743a51
authored
2 years ago
by
Françoise Conil
Browse files
Options
Downloads
Patches
Plain Diff
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
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/encodages.md
+15
-14
15 additions, 14 deletions
doc/encodages.md
with
15 additions
and
14 deletions
doc/encodages.md
+
15
−
14
View file @
8a743a51
# 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 ca
a
ractè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égor
ie d
e
codés sur 2 octets. Une partie des octets sert à indiquer
sur comb
ie
n
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.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment