L'internationalisation d'une base
Faire vivre plusieurs langues et plusieurs pays dans une base : encodage du serveur et du client, collation et ordre de tri, sensibilité à la casse, formats régionaux et fuseaux horaires.
- 25 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Mises en situation
Quelques cartes du deck
Encodage du serveur : de quoi s'agit-il ?
Voir la réponse
Code qui fixe comment les caractères d'une base sont écrits en octets sur le disque. Il est choisi à la création de la base, le plus souvent UTF-8.
Une base UTF-8 accepte tous les alphabets. Une base en Latin-1 refuse un caractère comme « œ » ou « € », qu'elle ne sait pas représenter.
Quelle est la sortie du dernier SELECT ?
```sql
CREATE TABLE rdv (quand timestamptz);
INSERT INTO rdv VALUES ('2025-07-01 12:00+00');
SET timezone = 'America/New_York';
SELECT quand FROM rdv;`2025-07-01 08:00:00-042025-07-01 12:00:00+002025-07-01 08:00:00-052025-07-01 16:00:00-04
Voir la réponse
2025-07-01 08:00:00-04L'instant 12 h UTC est affiché dans le fuseau de la session. En juillet, New York est à l'heure d'été, UTC−4 : 8 h. Avec UTC−5 (heure d'hiver) on lirait 7 h.
Dans PostgreSQL, l'encodage et la collation par défaut d'une base se fixent à sa … ;
ALTER DATABASEne permet pas de les changer ensuite.Voir la réponse
Dans PostgreSQL, l'encodage et la collation par défaut d'une base se fixent à sa création ;
ALTER DATABASEne permet pas de les changer ensuite.Changer d'encodage ou de collation passe par une nouvelle base, où l'on recharge les données avec
pg_dumpetpg_restore.Encodage du client : de quoi s'agit-il ?
Voir la réponse
Code dans lequel une session échange ses textes avec le serveur, qui convertit à la volée entre lui et l'encodage de la base.
Il se règle par session (
SET client_encoding = 'LATIN1'). S'il ne dit pas la vérité sur les octets envoyés, la conversion fabrique des accents cassés.