Unicode est une norme in­ter­na­tio­nale pour le codage, la re­pré­sen­ta­tion et le trai­te­ment des ca­rac­tères de texte issus de presque tous les systèmes d’écriture du monde. Chaque caractère reçoit un point de code unique qui peut être stocké dans dif­fé­rents codages de ca­rac­tères tels que UTF-8 ou UTF-16. Unicode permet ainsi d’afficher et de traiter les textes de manière uniforme sur dif­fé­rentes pla­te­formes et dans dif­fé­rentes langues.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Unicode : qu’est-ce que c’est ?

Unicode est la version courte de « Universal Character Encoding » en anglais, c’est-à-dire « Codage universel de ca­rac­tères ». Il s’agit d’une norme stan­dar­di­sée pour le codage des ca­rac­tères en re­pré­sen­ta­tion binaire. Unicode permet de stocker et de traiter des textes dans des systèmes nu­mé­riques.

Ce qui fait la spé­ci­fi­cité d’Unicode, c’est que ce standard n’est pas lié aux formats et aux codages de l’alphabet d’une langue en par­ti­cu­lier. Au contraire, Unicode a été créé dans le but de servir de norme uniforme pour re­pré­sen­ter tous les systèmes d’écriture et tous les ca­rac­tères qui existent à travers le monde.

Depuis la sortie d’Unicode 1.0 en 1991, le standard a été à la hauteur de son objectif. Unicode est utilisé en interne par les na­vi­ga­teurs et les systèmes d’ex­ploi­ta­tion en tant que format unique. Avec la version 16.0 publiée par le Con­sor­tium Unicode en 2024, le standard Unicode comprend désormais un ré­per­toire de 154 998 ca­rac­tères au total. Le jeu de ca­rac­tères couvert par le standard Unicode coïncide avec l’UCS (Universal Coded Character Set), qui est stan­dar­disé au niveau in­ter­na­tio­nal sous l’ap­pel­la­tion ISO/CEI 10646.

Base technique pour le codage des ca­rac­tères

Tout d’abord, il est important de com­prendre que toutes les in­for­ma­tions présentes dans un système numérique sont en fait cons­ti­tuées de chaînes in­ter­mi­nables de 0 et de 1. On parle aussi de « re­pré­sen­ta­tion binaire ». Le code binaire est en lui-même une sorte d’alphabet. Cependant, il n’y a que deux « lettres » dans ce code : les 0 et les 1. Chaque chiffre dans une séquence de 0 et de 1 est appelé un « bit ».

Le principe de base de la tech­no­lo­gie de l’in­for­ma­tique consiste à rendre compte des ca­rac­tères de dif­fé­rents alphabets sous forme de séquences de 0 et de 1. Les nombres et les lettres peuvent être codés de cette manière, mais aussi tous les autres ca­rac­tères re­con­nais­sables. En général, on parle de « symboles ». Plus la séquence de 0 et de 1 est longue pour l’affichage d’un seul symbole, plus il est possible d’afficher de symboles. Le nombre de symboles possibles double à chaque bit ajouté.

Un exemple concret : imaginons que nous ayons des « mots » binaires de deux bits de long. Ils nous per­met­tent de coder 4 chiffres :

Mot de 2 bits Chiffre
00 0
01 1
10 2
11 3

Si nous ajoutons un autre bit au début de la séquence, le nombre de mots binaires possibles double. Les nouveaux mots sont cons­ti­tués des séquences de bits déjà connues, chacune précédée d’un 0 ou d’un 1. On peut donc coder huit chiffres :

Mot de 3 bits Chiffre
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Remarque

Un mot de 8 bits est appelé octet ou byte.

Par souci de sim­pli­cité, nous vous avons montré ici le codage des chiffres à titre d’exemple. Cependant, le même principe est également utilisé dans les systèmes in­for­ma­tiques pour le codage des lettres ou de tout autre caractère. Voici un exemple très simplifié de codage binaire de lettres :

Mot de 3 bits Lettre
000 A
001 B
010 C

La re­pré­sen­ta­tion graphique d’un caractère s’appelle un glyphe. Selon la police utilisée, il existe dif­fé­rents glyphes pour le même caractère, et même au sein d’une même police, il peut y avoir plusieurs variantes pour un glyphe. Pensez par exemple aux dif­fé­rents accents, à la casse, aux italiques, etc. Voici une re­pré­sen­ta­tion étendue, qui comprend l’af­fec­ta­tion d’un caractère à un glyphe :

Re­pré­sen­ta­tion binaire Nombre décimal Caractère codé Glyphe
1000001 65 A majuscule de l’alphabet latin A
1100001 97 a minuscule de l’alphabet latin a
0110000 48 Chiffre arabe 0 0
0111001 57 Chiffre arabe 9 9
11000100 196 Ä majuscule Ä
11000001 193 Á majuscule Á

Ter­mi­no­lo­gie du codage des ca­rac­tères

Le codage numérique de ca­rac­tères implique un certain nombre de concepts spé­ci­fiques. En français, les dif­fé­rents termes sont parfois utilisés comme des synonymes. Afin de pouvoir donner une dé­fi­ni­tion Unicode précise, nous donnons également les termes anglais ici :

Concept Dé­fi­ni­tion Terme anglais
Jeu de ca­rac­tères Ensemble de ca­rac­tères possibles, par ex. les chiffres 0 à 9, les lettres de a à z, etc. Character set
Point de code Valeur numérique attribuée à chaque caractère spé­ci­fique dans le codage des ca­rac­tères Code point
Jeu de ca­rac­tères codés Jeu de ca­rac­tères dans lequel chaque caractère a exac­te­ment un point de code Coded character set
Codage de caractère Processus de con­ver­sion d’un signe en une structure technique par exemple en re­pré­sen­ta­tion binaire Character encoding

Aperçu du codage de certains ca­rac­tères courants

Avant la création d’Unicode, il existait une grande variété de codages spé­ci­fiques. C’était la norme d’avoir alors un codage distinct pour chaque langue ou famille de langues. Cela con­dui­sait souvent à des erreurs d’affichage et à des in­co­hé­rences dans les données. Pour éviter cela, les codages de ca­rac­tères ont souvent été modélisés comme un nouvel ensemble englobant, et com­pa­tible avec, un standard existant. Le standard Unicode moderne est basé sur l’ancien codage de ca­rac­tères ISO Latin-1, qui à son tour est basé sur le code ASCII.

Codage des ca­rac­tères Bits par caractère Ca­rac­tères possibles Ensemble de ca­rac­tères
ASCII 7 bits 128 Lettres, chiffres et ca­rac­tères spéciaux du clavier américain, ainsi que des ca­rac­tères de contrôle pour les té­lés­crip­teurs
ISO Latin-1 (ISO 8859-1) 8 bits 256 Les 128 premiers ca­rac­tères sont ceux d’ASCII, les 128 autres ca­rac­tères cor­res­pon­dent à des ca­rac­tères spéciaux de langues eu­ro­péennes
Universal Coded Character Set 2 (UCS-2) 16 bits 65 536 Ca­rac­tères du « Basic Mul­ti­lin­gual Plane » (BMP) ; les 256 premiers ca­rac­tères sont ceux de ISO Latin-1
Universal Coded Character Set 4 (UCS-4) 32 bits 1 114 111 Ca­rac­tères du BMP et d’autres qui y ont été ajoutés ; 143 859 ca­rac­tères en tout dans la version Unicode 13.0 ; les 256 premiers ca­rac­tères sont ceux de ISO Latin-1
UCS Trans­for­ma­tion Format 8 Bit (UTF-8) 8/16/24/32 bits 1 114 111 Tous les ca­rac­tères de UCS-2 et UCS-4 ; les 256 premiers ca­rac­tères sont ceux de ISO Latin-1

Structure du standard Unicode

Le standard Unicode définit les ca­rac­tères et les points de code cor­res­pon­dants aux lettres, syllabes, idéo­grammes, signes de ponc­tua­tion, ca­rac­tères spéciaux et aux chiffres. En plus de l’alphabet latin, les alphabets grec, cy­ril­lique, arabe, hébreu et thaï sont intégrés. Les signes japonais (Katakana, Hiragana), chinois et coréen (Hangeul) sont également pris en compte. Il existe aussi des ca­rac­tères ma­thé­ma­tiques, com­mer­ciaux et tech­niques spéciaux, ainsi que des ca­rac­tères de contrôle his­to­riques pour les té­lés­crip­teurs.

Les ca­rac­tères sont résumés dans une série de tableaux de ca­rac­tères. Voici un aperçu des tableaux de ca­rac­tères les plus courants.

Systèmes d’écriture du standard Unicode

Table de ca­rac­tères Contient entre autres les alphabets suivants
Systèmes d’écriture européens Arménien, Géorgien, Grec, Latin
Systèmes d’écriture africains Éthiopien, Hié­ro­glyphes égyptiens, Copte
Systèmes d’écriture du Moyen-Orient Arabe, Hébreu, Syrien
Systèmes d’écriture d’Asie centrale Mongol, Tibétain, Turc ancien
Systèmes d’écriture d’Asie du Sud Brahmi, Tamoul, Védique
Systèmes d’écriture d’Asie du Sud-Est Khmer, Rohingya, Thaï
Systèmes d’écriture d’Indonésie et d’Océanie Balinais, Bugi, Javanais
Systèmes d’écriture d’Extrême-Orient CJC (Chinois, Japonais, Coréen), Hangeul (Coréen), Hiragana (Japonais)
Systèmes d’écriture d’Amérique Cherokee, Syl­la­baire au­toch­tone canadien, Osage

Symboles et signes de ponc­tua­tion du standard Unicode

Table de ca­rac­tères Contient entre autres les ca­rac­tères suivants
Systèmes de notation Modèles Braille, notation musicale, sté­no­gra­phie Duployé
Signes de ponc­tua­tion Ponc­tua­tion anglaise, ponc­tua­tion des langues eu­ro­péennes, ponc­tua­tion CJC
Symboles al­pha­nu­mé­riques Ca­rac­tères ma­thé­ma­tiques, lettres en­cer­clées
Symboles tech­niques Symboles APL, re­con­nais­sance optique de ca­rac­tères (ROC)
Chiffres & nombres Chiffres Maya, nombres Siyaq ottomans, ponc­tua­tion et nombres cu­néi­formes
Symboles ma­thé­ma­tiques Flèches, opé­ra­teurs ma­thé­ma­tiques, formes géo­mé­triques
Emojis & pic­to­grammes Emo­ti­cônes, dingbats, autres pic­to­grammes
Autres symboles Symboles al­chi­miques, signes mo­né­taires, symboles d’échecs, de dominos et de mahjong

À quoi sert le standard Unicode ?

Le standard Unicode sert prin­ci­pa­le­ment de base uni­ver­selle pour le trai­te­ment, le stockage et l’échange de texte dans n’importe quelle langue. La plupart des com­po­sants logiciels modernes, tels que les bi­blio­thèques, les pro­to­coles, les bases de données, etc. qui fonc­tion­nent avec du texte, sont basés sur Unicode. Nous il­lus­trons l’éventail des uti­li­sa­tions possibles à l’aide des exemples suivants.

Systèmes d’ex­ploi­ta­tion

Unicode est le standard interne de re­pré­sen­ta­tion du texte dans la plupart des systèmes d’ex­ploi­ta­tion modernes. Certains systèmes d’ex­ploi­ta­tion, comme macOS d’Apple, au­to­ri­sent l’uti­li­sa­tion de ca­rac­tères Unicode dans les noms de fichiers.

Sites Internet

La variante Unicode UTF-8 s’est imposée comme le standard pour le codage de documents HTML. Dès 2016, plus de 80 % des sites Web les plus visités au monde uti­li­saient UTF-8 pour stocker et afficher leurs documents HTML. Le standard Punycode s’est établi pour l’uti­li­sa­tion de lettres hors ASCII des noms de domaine.

Créer un site Internet
Votre site en un éclair grâce à l'in­tel­li­gence ar­ti­fi­cielle
  • Éditeur de site intuitif avec fonctions d'IA
  • Gé­né­ra­teur d'images et de textes avec op­ti­mi­sa­tion SEO
  • Domaine, SSL et boîte email inclus

Langages de pro­gram­ma­tion

De nombreux langages de pro­gram­ma­tion modernes utilisent Unicode comme base pour le trai­te­ment du texte. Depuis un dé­ve­lop­pe­ment plus récent, il est possible d’utiliser des ca­rac­tères Unicode pour nommer des variables et des fonctions. Ceci est possible dans EC­MAS­cript/Ja­vaS­cript comme on peut le voir dans le code suivant :

let ︎👍 = true; 
let 👎 = false; 
if (bool_var === ︎👎) { 
 // … 
}
ja­vas­cript

Banques de données

La base de données populaire et largement utilisée MySQL prend en charge le jeu de ca­rac­tères Unicode complet avec le codage de ca­rac­tères « utf8mb4 ». Cependant, lors de l’uti­li­sa­tion du codage de ca­rac­tères « utf8 », les ca­rac­tères dont le point de code est supérieur à 3 octets sont perdus.

Polices

Les polices con­tien­nent les glyphes utilisés pour re­pré­sen­ter gra­phi­que­ment le texte. En raison du grand nombre de ca­rac­tères contenus dans le standard Unicode, aucune police ne contient tous les ca­rac­tères. Même le sous-ensemble du BMP n’est com­plè­te­ment couvert que par quelques polices. Voici quelques exemples :

Police Unicode Glyphe Licence
Noto environ 77 000 Open Font Licence
Sun-ExtA/B environ 50 000 Freeware
Unifont environ 63 000 GNU GPL
Code2000 environ 63 000 Shareware
Stockage en ligne HiDrive Next
Vos données ac­ces­sibles partout et à tout moment
  • Modifiez, partagez et stockez vos fichiers
  • Data centers européens certifiés ISO
  • Sécurité élevée des données, conforme au RGPD

Comment utiliser le standard Unicode ?

Bien souvent, les uti­li­sa­teurs utilisent Unicode sans le savoir. Dans la plupart des documents et ap­pli­ca­tions, le texte numérique est dis­po­nible au format Unicode et peut être copié, inséré et modifié selon les besoins de l’uti­li­sa­teur. Parfois, l’uti­li­sa­teur doit insérer un caractère Unicode spé­ci­fique dans le texte. Il existe dif­fé­rentes manières de le faire, que nous pré­sen­te­rons ci-dessous.

Claviers des ca­rac­tères spéciaux

L’uti­li­sa­tion de claviers spéciaux est pro­ba­ble­ment la méthode la plus courante pour insérer des ca­rac­tères Unicode dans du texte. Om­ni­pré­sents sur les appareils mobiles, les claviers spéciaux vous per­met­tent de basculer entre les dif­fé­rentes langues et alphabets. Tous les ca­rac­tères étant issus du ré­per­toire Unicode, en cliquant sur une même touche, on peut taper dif­fé­rents ca­rac­tères. Ceux-ci peuvent être mélangés à volonté et combinés les uns aux autres dans des textes.

Les emojis en sont un bon exemple. En standard Unicode, les emojis sont des ca­rac­tères au même titre que les lettres, les chiffres et les ca­rac­tères spéciaux. Comme avec les ca­rac­tères nu­mé­riques, l’affichage des emojis est in­dé­pen­dant de leur mo­dé­li­sa­tion interne. Chaque système d’ex­ploi­ta­tion présente le même emoji lé­gè­re­ment dif­fé­rem­ment.

Ces claviers spéciaux utiles ne se trouvent pas que sur les appareils mobiles. Ils sont également dis­po­nibles sur le bureau des or­di­na­teurs. Ils peuvent être fa­ci­le­ment ouverts dans Windows, macOS et de nom­breuses dis­tri­bu­tions Linux pour afficher un nombre de ca­rac­tères différent selon la langue sé­lec­tion­née. Le nombre de touches étant limité, tous les ca­rac­tères Unicode ne sont pas affichés. Il s’agit plutôt d’une sélection des ca­rac­tères les plus courants spé­ci­fiques à une langue.

Tableaux des ca­rac­tères Unicode

En plus des claviers de ca­rac­tères spéciaux, les tableaux de ca­rac­tères Unicode sont sans doute le moyen le plus utile d’accéder aux dif­fé­rents ca­rac­tères Unicode. Pour rappel, un jeu de ca­rac­tères codés (Coded Character Set) est l’ensemble de tous les ca­rac­tères avec leurs points de code uniques cor­res­pon­dants. Pour une telle structure, la dis­po­si­tion en tant que tableau est idéale, et le standard Unicode inclut pré­ci­sé­ment de tels tableaux appelés Code Charts. D’une part, des ca­rac­tères spé­ci­fiques peuvent être copiés à partir de ces tableaux pour les utiliser ailleurs, d’autre part, l’uti­li­sa­teur peut lire le point de code cor­res­pon­dant, par exemple pour l’utiliser comme référence de caractère numérique.

De nombreux systèmes d’ex­ploi­ta­tion de PC con­tien­nent également une table de ca­rac­tères Unicode. Elle donne un aperçu de tous les ca­rac­tères Unicode dis­po­nibles, y compris le point de code, la des­crip­tion et le glyphe. Un caractère peut être inséré ou copié en un clic. Vous pouvez également créer vous-même une table de ca­rac­tères avec seulement quelques lignes de code. Nous vous montrons un exemple dans le langage de pro­gram­ma­tion Python dans la suite de l’article.

Ré­fé­rences nu­mé­riques

Le standard Unicode met l’accent sur l’af­fec­ta­tion des ca­rac­tères aux points de code. Si vous con­nais­sez le point de code d’un caractère, vous pouvez l’utiliser pour intégrer le caractère cor­res­pon­dant dans dif­fé­rents contextes. Sous Windows, insérer des symboles Unicode se fait en utilisant le clavier normal ou en utilisant une com­bi­nai­son de dif­fé­rentes touches. Notez que le numéro de point de code doit nor­ma­le­ment être entré en notation hexa­dé­ci­male.

Le plus souvent, les pro­gram­meurs ont besoin des ré­fé­rences nu­mé­riques. La re­pré­sen­ta­tion hexa­dé­ci­male des points de code permet la **re­pré­sen­ta­tion d’un caractère Unicode en caractère du jeu de ca­rac­tères ASCIIùù. Nous montrons le processus ici en HTML. En principe, le fonc­tion­ne­ment est le même en Python, C ++, etc.

Le schéma général pour inclure un caractère par référence numérique comprend la référence elle-même, ainsi qu’un terme d’ouverture et de fermeture : dans les documents HTML, la référence numérique s’ouvre avec &#x et se termine par ;. Entre les deux, le point de code hexa­dé­ci­mal de deux à quatre chiffres est entré sans espace. Le résultat est le modèle &#xNNNN;.

Par exemple, pour insérer le symbole de copyright « © » dans un document HTML, on procède comme suit :

  1. Re­cher­cher le caractère dans un tableau Unicode.
  2. Lire le point de code cor­res­pon­dant au caractère. Dans notre exemple, le point de code est U+00A9, qui en est la re­pré­sen­ta­tion hexa­dé­ci­male.
  3. Composer la référence du caractère et entrez-la dans le texte source HTML ou un fichier Markdown. Dans notre cas, nous entrons © ; ce qui nous donne le résultat « © ».

Une autre approche, moins courante, permet l’uti­li­sa­tion de points de code en re­pré­sen­ta­tion décimale au lieu d’une re­pré­sen­ta­tion hexa­dé­ci­male. Dans ce cas, la référence numérique commence par &# (sans le « x ») et se termine par ; comme avec la première méthode. Entre les deux, le point de code est écrit en notation décimale. Dans notre exemple, la référence numérique © cor­res­pond au symbole copyright.

Conseil

Utilisez le Unicode Character Inspector pour trouver ra­pi­de­ment les dif­fé­rents codes des ca­rac­tères.

Ré­fé­rences nommées

Puisqu’écrire des ca­rac­tères Unicode avec des ré­fé­rences nu­mé­riques n’est pas vraiment intuitif, il existe une autre méthode : grâce aux ré­fé­rences nommées. Celles-ci sont définies pour les ca­rac­tères fré­quem­ment utilisés et donnent au caractère un nom court qui peut être mémorisé. Une référence nommée commence par l’es­per­luette & et se termine par un point-virgule ;. Le nom défini est placé entre les deux, sans espaces. Pour insérer le symbole de copyright « © » en HTML, écrivez sim­ple­ment ©.

Conseil

La liste complète des ré­fé­rences de ca­rac­tères nommées est en­re­gis­trée en standard HTML.

Langages de pro­gram­ma­tion

La plupart des langages de pro­gram­ma­tion con­tien­nent des fonctions de base qui peuvent être utilisées pour convertir des ca­rac­tères et des points de code. Les fonctions cor­res­pon­dantes sont souvent appelées ord(caractère) et chr(point de code). Ce qui suit s’applique :

chr(ord(caractère)) == caractère

Notez qu’il est toujours possible de dé­ter­mi­ner le point de code cor­res­pon­dant à un caractère. À l’inverse, l’af­fec­ta­tion ne fonc­tionne que pour les nombres qui sont réel­le­ment définis comme des points de code du jeu de ca­rac­tères codés. Voici le schéma de base en utilisant un court exemple Python :

# Obtenir le point de code décimal d’un caractère
ord('A') # `65`
# Obtenir le point de code hexadécimal d’un caractère
hex(ord('A')) # `0x41`
# Obtenir le caractère correspondant à un point de code
chr(65) # `'A'`
chr(0x41) # `'A'`
chr(0x110001) # Erreur, car le point de code > `0x110000`
python

À l’aide de ces fonctions, il est possible de créer une table de ca­rac­tères fa­ci­le­ment pour les points de code du jeu de ca­rac­tères Unicode. Pour ce faire, vous répétez les points de code et sortez les ca­rac­tères cor­res­pon­dants. Avec Python, cela se fait en quelques lignes de code :

# Commencer `range` à `32`, car en dessous de cette valeur des caractères de contrôle sont affichés
# Afficher le jeu de caractères ASCII
for code_point in range(32, 128):
    print(code_point, hex(code_point), chr(code_point))
# Afficher l’ISO Latin-1
for code_point in range(32, 256):
    print(code_point, hex(code_point), chr(code_point))
python

Bi­blio­thèque ICU

Les com­po­sants in­ter­na­tio­naux pour Unicode (« In­ter­na­tio­nal Com­po­nents for Unicode », ICU) sont résumés dans une bi­blio­thèque de pro­grammes fournie par le Con­sor­tium Unicode. La bi­blio­thèque est publiée sous une licence open source et peut être utilisée sur de nombreux systèmes d’ex­ploi­ta­tion. Le logiciel est utilisé pour l’in­ter­na­tio­na­li­sa­tion pro­gram­ma­tiqueIn­ter­na­tio­na­li­za­tion », souvent abrégé en « i18n »). Ses domaines d’ap­pli­ca­tion com­pren­nent :

  • Le trai­te­ment des textes Unicode
  • La prise en charge des ex­pres­sions ré­gu­lières en Unicode
  • L’analyse et la mise en forme des dates, heures, nombres, devises et messages du ca­len­drier

La bi­blio­thèque ICU est dis­po­nible en deux versions :

  • « icu4c » est écrite en C/C ++ et fournit une API pour ces langages
  • « icu4j » est écrite en Java et fournit une API pour ce langage

L’uti­li­sa­tion des com­po­sants fournit des résultats con­sis­tants quelle que soit la pla­te­forme.

Charset dans les méta-données en head d’un document HTML

La plupart des documents HTML actuels sont codés en ca­rac­tères UTF-8. Pour s’assurer que le document s’affiche pour les visiteurs de la page sans ca­rac­tères in­cor­rects, un méta-tag charset doit être placé en head (dans l’en-tête) du document HTML. Il demande au na­vi­ga­teur d’in­ter­pré­ter le document récupéré comme UTF-8. En voici un exemple :

<head>
<meta charset="utf-8">
<!--autres éléments du header -->
</head>
html

Polices Instagram

Le réseau social Instagram n’autorise pas le formatage de texte pour les in­for­ma­tions bio­gra­phiques, les pu­bli­ca­tions ou les stories. Les pos­si­bi­li­tés créatives des uti­li­sa­teurs sont donc limitées. Des dé­ve­lop­peurs ingénieux ont toutefois trouvé une astuce pour y remédier : Instagram utilise Unicode, ce qui permet de composer un texte formaté à partir de ca­rac­tères spéciaux. Il s’agit en par­ti­cu­lier de ca­rac­tères qui res­semblent à des lettres latines. Le moyen le plus simple de créer un texte de ce type est d’utiliser un gé­né­ra­teur de polices Instagram. L’uti­li­sa­tion des polices Instagram fonc­tionne également sur d’autres réseaux sociaux.

Aller au menu principal