title: Urbanisme

text: Les conquêtes coloniales sont aussi l'occasion de créer de nouvelles villes qui s'appuient sur une réflexion urbanistique comme Washington avec l'urbaniste Charles André Lenfant ou les villes d'Afrique du Nord avec Lyautey.


title: Urbanisme

text: C'est à la fin du qu'apparaissent les premières lois visant à mettre à une organisation de l'espace anarchique et spéculative et notamment pour lutter contre les lotissements insalubres. Se développe en parallèle une réflexion sur l'habitat ouvrier notamment dans le cadre des Expositions Universelles et sa section d'économie sociale dirigée par Frédéric Le Play. Cela va induire la naissance du mouvement HBM et aussi une réflexion sur une approche qui dépasse la seule problématique du logement notamment avec les Cités-Jardins. C'est à partir du mouvement international des cités-jardins que va, en France, se développer l'urbanisme autour du Musée social. Les premières lois d'urbanisme de 1919 et 1924 dites lois Cornudet son directement inspirées par les membres du Musée sociale de cette époque comme le montrent Jean-Pierre Gaudin et François-Xavier Tassel.


title: Urbanisme

text: Une histoire de la ville commence à s'écrire au avec Léonardo Benevolo, Pierre Lavedan, Michel Ragon... Les sociologues contribuent à une approche plus sociologique avec des centres universitaire de recherche comme le Centre de Sociologie Urbaine de Grenoble ou autour d'Henri Lefbvre à l'Université de Vincennes et qui écrit un ouvrage qui fera date : "Le droit à la ville". La réflexion théorique se poursuit avec notamment Françoise Choay à partir de son ouvrage : "L'urbanisme, réalités et utopies". La réflexion philosophique se poursuit avec notamment les travaux d'Olivier Mongin, Thierry Paquot, Agustin Berque...


title: Urbanisme

text: À partir des années soixante-dix, va se développer en France et en Belgique un urbanisme pratique pour reprendre le terme de "praxis" employé par Henri Lefebvre. Ce champ est celui, dans une approche autogestionnaires porté par les syndicats et les associations locales, de la volonté des habitants non seulement à participer aux décisions urbanistiques les concertant mais aussi contribuer à l'élaboration des projets. Il s'agit pour eux de faire contrepoids à la technostructure, les professionnels comme les élus et aménageurs, notamment aux travers d'Ateliers Publics d'urbanisme. Cela deviendra ce que l'on appelle l'urbanisme participatifs. Parmi les opérations exemplaires on peut citer l'Alma Gare à Roubaix, La ZAC du Mont Hermé à Saint Brice Courcelles près de Reims ou encore le quartier des Marolles à Bruxelles avec Lucien Kroll. Ces expériences ont été à l'origine de l'introduction des lois obligeant à une plus grande information voire concertation


title: Urbanisme

text: La gouvernance des projets en matière d'urbanisme et d'aménagement revient à l'ordre du jour au-delà des luttes symboliques comme Notre Dames des Landes. Le philosophe Thierry Paquot invite à nouveau les habitants à se saisir de la ville avec son ouvrage "L'urbanisme, c'est notre affaire".


title: Urbanisme

text: Les urbanistes participent aussi à l'approche globale du développement des villes ou de leurs quartiers notamment en élaborant avec les responsables locaux et parfois les populations concernées à des projets urbains qui prennent en compte en amont de la mise en forme spatiale des objectifs plus globaux qui sont ensuite déclinés par secteurs et activités.


title: Urbanisme

text: Les notions traditionnelles de plan et de planification sont progressivement remplacées par celles de développement urbain durable et de projet urbain au service duquel se trouve la pratique de la programmation urbaine. Le projet urbain présente plusieurs dimensions, et peut être défini comme suit : « Le projet urbain est à la fois un processus concerté et un projet territorial : il consiste à définir et mettre en œuvre des mesures d’aménagement sur un territoire urbain donné, en partenariat avec tous les partenaires civils et institutionnels concernés, intégrant les différentes échelles territoriales et le long terme, en vue d’un développement urbain durable.


title: Urbanisme

text: Le domaine dit "urbanisme règlementaire" consiste à élaborer un document de planification, dans le respect de la législation imposé par le droit de l'urbanisme, afin de délimiter pour les acteurs publics et privés les possibilités de construction/rénovation, d'aménagement et de développement sur un territoire donné. Ce travail peut dans certains cas concerner des conurbations (plusieurs communes) afin d'obtenir une cohérence sur l'ensemble d'un territoire (tel qu'en France pour le Schéma de cohérence territoriale SCOT ou le Plan local d'urbanisme communal (PLU) ou intercommunal (PLUi)).


title: Urbanisme

text: Par exemple :


title: Urbanisme

text: L’urbanisme opérationnel consiste à mettre en place les actions et procédures nécessaires à la réalisation d’un projet urbain. Il regroupe ainsi « l’ensemble des actions conduites ayant pour objet la fourniture de terrains à bâtir, la construction de bâtiments ou le traitement de quartiers et d'immeubles existants (recomposition urbaine, réhabilitation, résorption de l’habitat insalubre) » (Réf. ?). Par cela, il se différencie de l’urbanisme réglementaire qui regroupe l’ensemble des documents thématiques et réglementaires de planification stratégique et de programmation.


title: Urbanisme

text: Les parties ci-dessous présentent quelques modèles d'organisation et de fonctionnement des villes.


title: Urbanisme

text: Une organisation théorique du territoire fondée sur trois facteurs et ça qu'il appelés « rayon facile de communication ». Ceux-ci donnent une hiérarchie aux centres urbains rayonnant sur des hexagones vers des unités urbaines plus petites. Les trois facteurs sont : la sociabilité, l’économie et l’administration.


title: Urbanisme

text: Une hiérarchie de la répartition optimale des unités urbaines en 6 niveaux pour maximiser son utilité et profit selon trois caractéristiques :


title: Urbanisme

text: Son modèle dits que les services de même niveau ont tendance à se regrouper (système de centralité) selon la taille de l’unité urbaine et le degré de trois caractéristiques. (Voir Modèle christallérien)


title: Urbanisme

text: En France, malgré la présence de formations universitaires, le terme d'urbaniste est parfois utilisé de façon abusive y compris par des personnes non issues de l'enseignement supérieur. En , le Ministère du Travail a inscrit le diplôme national de Master Urbanisme et aménagement au répertoire national des certifications professionnelles (RNCP). Cette certification nationale reconnaît le caractère qualifiant de ce diplôme.


title: Urbanisme

text: Le métier d'urbaniste s'exerce à différentes échelles territoriales et généralement en équipe ou plus rarement seul, avec de nombreux intervenants du fait de la pluridisciplinarité des projets, dans des institutions publiques, des sociétés privées ou des associations. Elle présente un plan pentagonal organisé autour d'une vaste esplanade d'où part un tracé rectiligne qui sillonne la ville et le département de la Vendée.


title: Unicode

text: Unicode est un standard informatique qui permet des échanges de textes dans différentes langues, à un niveau mondial. Il est développé par le Consortium Unicode, qui vise au codage de texte écrit en donnant à tout caractère de n'importe quel système d'écriture un nom et un identifiant numérique, et ce de manière unifiée, quels que soient la plate-forme informatique ou le logiciel utilisé.


title: Unicode

text: Ce standard est lié à la norme qui décrit une table de caractères équivalente. La dernière version, , a été publiée en .


title: Unicode

text: Totalement compatible avec le jeu universel de caractères (JUC) de l', le standard Unicode l'étend en lui ajoutant un modèle complet de représentation et de traitement de textes, en conférant à chaque caractère un jeu de propriétés (qui peuvent être soit pour certaines standardisées et stabilisées dans toutes les versions d'Unicode où le caractère a été encodé, soit informatives avec seulement une recommandation sur leur usage qui peut évoluer en fonction des nouveaux besoins trouvés). Ces propriétés décrivent avec précision les relations sémantiques qui peuvent exister entre plusieurs caractères successifs d'un texte, et permettent de standardiser ou recommander des algorithmes de traitement qui préservent au maximum la sémantique des textes transformés. Unicode a pour objet de rendre un même texte utilisable à l'identique sur des systèmes informatiques totalement différents.


title: Unicode

text: Le standard Unicode est constitué d'un répertoire de , couvrant plus de 150 écritures, d'un ensemble de tableaux de codes pour référence visuelle, d'une méthode de codage et de plusieurs codages de caractères standard, d'une énumération des propriétés de caractère (lettres majuscules, minuscules, APL, symboles, ponctuation) d'un ensemble de fichiers de référence des données informatiques, et d'un certain nombre d'éléments liés, tels que des règles de normalisation, de décomposition, de tri, de rendu et d'ordre d'affichage bidirectionnel (pour l'affichage correct de texte contenant à la fois des caractères d'écritures de droite à gauche, comme l'arabe et l'hébreu, et de gauche à droite).


title: Unicode

text: En pratique, Unicode reprend intégralement la norme , puisque cette dernière ne standardise que les caractères individuels en leur assignant un nom et un numéro normatif (appelé "point de code") et une description informative très limitée, mais aucun traitement ni aucune spécification ou recommandation pour leur emploi dans l'écriture de langues réelles, ce que seul le standard Unicode définit précisément. L' fait normativement référence à certaines parties du standard Unicode (notamment ) ; Unicode est également une norme "" pour le traitement du texte et sert de base à de nombreuses autres normes.


title: Unicode

text: Unicode, dont la première publication remonte à , a été développé dans le but de remplacer l'utilisation de pages de code nationales.


title: Unicode

text: Ces pages de code avaient dans le passé quelques problèmes. Par exemple, sur les  fonctionnant en EBCDIC : lorsqu'une note de service électronique comportait un caractère « signe monétaire », le même texte plafonnant une dépense en dollars pour le lecteur américain faisait afficher sur un écran britannique le même montant en livres sterling, puisque le signe monétaire était différent dans chacun des deux pays.


title: Unicode

text: Dans la pratique, tous les systèmes d'écriture ne sont pas encore présents, car un travail de recherche documentaire auprès de spécialistes peut encore s'avérer nécessaire pour des caractères rares ou des systèmes d'écriture peu connus (parce que disparus, par exemple).


title: Unicode

text: Cependant, les écritures les plus utilisées dans le monde sont représentées, ainsi que des règles sur la sémantique des caractères, leurs compositions et la manière de combiner ces différents systèmes. — Par exemple, comment insérer un système d'écriture de droite à gauche dans un système d'écriture de gauche à droite (texte bidirectionnel).


title: Unicode

text: Sous sa forme UTF-8, l'Unicode offre une certaine interopérabilité avec le code ASCII.


title: Unicode

text: Le standard Unicode définit des exigences permettant d'évaluer la conformité de l'implémentation d'un processus (ou d'un logiciel) à Unicode. Ces exigences concernent notamment (dans la ) :


title: Unicode

text: Ces exigences permettent le support d'un sous-ensemble d'Unicode.


title: Unicode

text: Alors que l' définit le même jeu de caractères qu'Unicode, la différence entre et Unicode tient essentiellement dans le surplus d'exigence de conformité fourni par Unicode.


title: Unicode

text: Unicode est en 2016 le standard leader pour le codage informatique des caractères. Il sert à l'interopérabilité de logiciels, et permet par exemple de copier des textes utilisant des caractères de différents alphabets entre des logiciels différents, même n'ayant pas été spécifiquement conçus pour eux (par exemple un programme en caractères APL dans un texte LibreOffice ou dans un courriel sous Gmail). Tous les textes Unicode ne sont cependant pas codés de la même manière. Suivant la normalisation Unicode adoptée, un même signe graphique peut parfois être codé de différentes manières. Certains textes utilisent la convention , d'autres la convention Et le standard n'interdit pas de mélanger plusieurs conventions dans un même texte. Il en va de même des logiciels.


title: Unicode

text: Cette coexistence de plusieurs façons d'écrire la même chose a été exploitée par les pirates dans les en leur permettant de déjouer des filtres : les pirates contournaient les interdictions de certaines chaînes de caractères jugées dangereuses tout simplement en les codant sous une autre forme, plus inhabituelle et de ce fait parfois non filtrée.


title: Unicode

text: Unicode répond à ces limitations en apportant la notion d'équivalence canonique.


title: Unicode

text: Le travail sur Unicode est parallèle et synchronisé avec celui sur la norme dont les buts sont les mêmes. L', une norme internationale publiée en français et en anglais, qui ne précise ni les règles de composition de caractères, ni les propriétés sémantiques des caractères.


title: Unicode

text: Unicode aborde cependant la problématique de la casse, du classement alphabétique, et de la combinaison d'accents et de caractères. Depuis la d'Unicode et dans toutes les versions suivantes, les caractères ont les mêmes identifiants que ceux de la norme : les répertoires sont maintenus parallèlement, à l'identique lors de leur standardisation définitive, les deux normes étant mises à jour presque simultanément. Les deux normes Unicode (depuis la ) et assurent une compatibilité ascendante totale : tout texte conforme à une version antérieure doit rester conforme dans les versions ultérieures.


title: Unicode

text: Ainsi les caractères de la d'Unicode sont ceux de la norme . La d'Unicode classait , symboles et directives.


title: Unicode

text: La d'Unicode, mise à jour en , comprenait : Soit un total de près de de codes assignés dans un espace pouvant contenir différents.


title: Unicode

text: Quelques problèmes semblent cependant exister, pour le codage des caractères chinois, à cause de l'unification des jeux idéographiques utilisés dans différentes langues, avec une calligraphie légèrement différente et parfois signifiante, mais ils sont en cours de résolution par Unicode qui a défini des sélecteurs de variantes et ouvert un registre de séquences normalisées qui les utilise.


title: Unicode

text: Unicode est défini suivant un modèle en couches ("Note technique Unicode "). Les autres normes ne faisaient typiquement pas de distinction entre le jeu de caractères et la représentation physique. Les couches sont ici présentées en partant de la plus haute (la plus éloignée de la machine).


title: Unicode

text: La couche la plus élevée est la définition du jeu de caractères abstraits. Par exemple, Latin-1 a un jeu de quand Unicode et l' normalisent conjointement actuellement près de dans un répertoire commun.


title: Unicode

text: En outre, Unicode et l'ISO/CEO 10646 affectent une dénomination commune et normalisée à chacun de ces caractères. La liste des caractères abstraits avec leurs noms normalisés constituent la couche commune de présentation de la norme et du standard Unicode. Par exemple, le caractère Ç est nommé « lettre majuscule latine c cédille ». Cette définition est totalement identique à celle de l' 10646, qui approuve toute extension du répertoire. Unicode ne reprend dans le texte de sa norme que les noms normatifs en anglais, mais la norme est publiée en deux langues également normatives. Ainsi les noms en anglais et en français sont tous deux normalisés par l'ISO.


title: Unicode

text: Dans les faits, toute extension du répertoire se fait aujourd'hui conjointement entre le groupe de travail responsable de l' ("JTC1/SC2/WG2", dont les membres votants sont uniquement des autorités de normalisation nationales des pays participants, ou leur représentant officiel), et le Comité technique Unicode "UTC" (dont les membres votants peuvent être n'importe quelle organisation privée ou d'intérêt public, ou même un gouvernement, qui a adhéré et paye une redevance annuelle permettant de participer à ces décisions).


title: Unicode

text: La normale ISO/CEI 10646 ajoute à la table précédente un numéro associé à chaque caractère abstrait du répertoire commun, lequel est repris dans le standard Unicode. Notons bien qu'il ne s'agit pas d'une représentation en mémoire, juste d'un nombre entier, appelé "point de code".


title: Unicode

text: L'espace de codage de ces nombres est divisé en de : ces zones sont appelées « plans de code ». Les plans de code sont eux-mêmes divisés en « colonnes de code » comprenant , qui sont (autant que possible) l'unité minimale de réservation dans le répertoire pour des groupes de caractères (assignés ou à venir) souvent utilisés conjointement dans une même écriture ou ayant des propriétés de base communes).


title: Unicode

text: Chaque point de code est noté « U+"xxxx" », où « "xxxx" » est en hexadécimal et comporte de :


title: Unicode

text: Ainsi, le caractère nommé « Lettre majuscule latine c cédille » (Ç) a le numéro U+00C7. Il appartient au premier plan.


title: Unicode

text: En principe tous les points de code entre U+0000 et U+10FFFF sont disponibles, mais certaines plages sont perpétuellement réservées à des usages particuliers, notamment une zone d'indirection exclue afin de permettre le codage UTF-16 ( infra), les zones à usage privé, ainsi que quelques régions (dont les deux derniers points de code de chacun des plans de code, par exemple U+FFFE ou U+FFFF) contenant des « non-caractères » et dont l'usage est interdit dans un échange de données conforme. Les autres points de code sont soit déjà affectés à des caractères, soit réservés par l'ISO/CEI 10646 pour une normalisation future.


title: Unicode

text: Zone à usage privé : l'ISO/CEI 10646 et Unicode ont assigné de nombreux points de code à des caractères valides, mais dont la sémantique est inconnue car d'usage privé (par exemple les deux derniers plans entre U+F0000 et U+10FFFF sont entièrement dédiés à cet usage, hormis les deux points de code à la fin de chaque plan qui sont des non-caractères interdits dans un texte conforme).


title: Unicode

text: Là encore, la standardisation du codage, c'est-à-dire l'affectation des points de codes aux caractères du répertoire commun est une décision conjointe partagée entre les normes Unicode et . Tous les caractères du répertoire disposent d'un point de code unique (même si pour certaines langues ou pour Unicode certains caractères sont considérés comme équivalents, avec l'un deux désigné comme standard et recommandé et les autres présents pour des raisons de compatibilité ascendante, par exemple avec d'anciennes normes ou avec des standards encore fréquemment utilisés).


title: Unicode

text: On peut noter que si le répertoire des caractères est extensible, il est limité par la borne supérieure de l'espace de codage : U+10FFFF. La grande majorité des points de code possibles n'est encore associée à aucun caractère particulier, mais peut l'être à tout moment.


title: Unicode

text: Aussi ces points de code encore libres ne sont pas considérés comme non valides, mais représentent bien des caractères abstraits (non encore spécifiés, et réservés jusqu'à nouvel ordre). Ces caractères abstraits (de même que les caractères à usage privé) complètent le jeu de caractères codés du répertoire standardisé pour former un jeu unique, dit « jeu de caractères codés universel » (', souvent abrégé en UCS), qui contient tous les jeux de caractères codés des répertoires de chacune des versions passées, présentes et futures de l' et ceux d'Unicode (depuis la uniquement).


title: Unicode

text: La couche suivante spécifie une représentation physique (en mémoire, sur disque…) de chacun des caractères abstraits : quelle unité de codage ("), ou codet, va représenter un caractère ou plus exactement un point de code : octet, (mot de ) ou (mot de ).


title: Unicode

text: Il peut exister (et il existe) plusieurs de ces formalismes. Un formalisme particulier doit préciser la taille de l'unité de codage et indiquer de quelle façon le nombre entier représentant un point de code est représenté en une suite d'unités de codage − et inversement, c'est-à-dire comment retrouver le point de code étant donnée une suite d'unités de codage.


title: Unicode

text: Cette couche s'occupe de sérialiser les suites d'unités de codage définies par la couche précédente en suites d'octets. C'est ici que se choisit l'ordre des octets entre les ordres gros-boutien (octet le plus significatif d'abord) et petit-boutien (octet le moins significatif d'abord).


title: Unicode

text: C'est également à cette étape qu'il est possible d'ajouter un indicateur d'ordre des octets (ou BOM, pour '), qui permet d'indiquer en début de fichier ou de flot de données s'il est en gros-boutien ou en petit-boutien. Dans le monde Internet, on l'utilise rarement, en préférant un marquage explicite (« "charset=UTF-16BE" » en MIME, par exemple, pour indiquer un flot de données gros-boutien, où "BE" signifie ').


title: Unicode

text: À ce niveau peuvent intervenir les mécanismes de compression ou de chiffrement. Il peut aussi y avoir également des surcodages, notamment au sein des protocoles MIME et HTTP qui les utilisent presque partout, mais aussi pour le LDAP, qui spécifient par exemple que les chaînes Unicode doivent être codées en UTF-8 puis surcodées en Base64 (ou avec d'autres formats d'échappement) et comment indiquer ces options de surcodage au sein des données échangées par ces applications.


title: Unicode

text: Ces compressions, chiffrements et surcodages, le plus souvent nécessaires et adaptés (et souvent standardisés) à divers protocoles pour la sécurisation et l'encapsulation correcte du texte codé et transporté (ou stocké), ne font partie ni standard Unicode, ni de la norme .


title: Unicode

text: Pour s'affranchir des contraintes rigides des normes précédentes (une suite de bits, une représentation), Unicode sépare dorénavant d'une part la "définition du jeu de caractères" (liste des caractères par leur nom) et leur index, le "point de code", de celle du codage. Ainsi, on ne peut donc pas parler de la taille d'un caractère Unicode, car elle dépend du codage choisi, et celui-ci peut donc varier à volonté. En pratique, UTF-8 est très utilisé dans les pays occidentaux.


title: Unicode

text: Là où l'ASCII utilise et (comme la plupart des pages de codes nationales), Unicode, qui rassemble les caractères de chaque page de code, avait besoin d'utiliser plus que les d'un octet. La limite fut dans un premier temps fixée à pour les premières versions d'Unicode, et à pour les premières versions de la norme ISO/CEI 10646.


title: Unicode

text: La limite actuelle est désormais placée entre par point de code assigné aux caractères standardisés dans les deux normes, désormais mutuellement compatibles :


title: Unicode

text: Unicode et acceptent plusieurs formes de transformation universelle pour représenter un point de code valide. Citons : Le nombre après UTF représente le nombre minimal de bits des codets avec lesquels un point de code valide est représenté.


title: Unicode

text: Ces transformations ont été initialement créées pour la représentation interne et les schémas de codage des points de code de la norme , qui au départ pouvait définir des points de code sur . Depuis, la norme a été amendée, afin que les trois formes soient totalement compatibles entre elles et permettent de coder tous les points de code (car UTF-16 ne permet de représenter que les points de code des plans).


title: Unicode

text: Unicode a standardisé également de façon très stricte ces trois formes de transformation de tous les points de code valides (U+0000 à U+D7FF et U+E000 à U+10FFFF) et uniquement eux, que ce soit pour représenter du texte sous forme de suites de points de code, ou des points de code assignés aux caractères valides, ou réservés, ou assignés à des non-caractères. Les points de code assignés aux demi-zones (U+D800 à U+DFFF), utilisés uniquement en UTF-16, sont invalides isolément puisqu'il servent à la représentation, par un couple de de , des points de code des supplémentaires.


title: Unicode

text: L'UTF-8, spécifié dans le , est le plus commun pour les applications Unix et Internet. Son codage de taille variable lui permet d'être en moyenne moins coûteux en occupation mémoire (pour les langues à alphabet latin). Mais cela ralentit nettement les opérations où interviennent des extractions de sous-chaînes dans certains langages qui indexent des chaînes par des entiers (exemple = "815 caractère de la chaîne"), car il faut compter les caractères depuis le début de la chaîne pour savoir où se trouve le premier caractère à extraire.


title: Unicode

text: L'UTF-8 assure aussi, et c'est son principal avantage, une compatibilité avec les manipulations simples de chaînes en ASCII dans les langages de programmation. Ainsi, les programmes écrits en C peuvent souvent fonctionner sans modification.


title: Unicode

text: Initialement, l'UTF-8 pouvait coder n'importe quel point de code entre U+0000 et U+7FFFFFFF (donc jusqu'à ). Cet usage est déprécié et la norme a été amendée pour ne plus supporter que les points de code valides des plans, sauf ceux de la "demi-zone" correspondant aux codets utilisés en UTF-16 pour la représentation sur deux codets des points de code des supplémentaires. Aussi les séquences les plus longues en UTF-8 nécessitent au maximum , au lieu de 6 précédemment. De plus, UTF-8 a été amendé d'abord par Unicode puis par l' pour ne plus accepter que la représentation la plus courte de chaque point de code ("unicité" du codage). Le fait de pouvoir représenter de plusieurs façons différentes un même caractère posait des problèmes de sécurité, car le pirate pouvait contourner par une écriture différente une forme "filtrée".


title: Unicode

text: Son avantage sur l'UTF-16 (et l'UTF-32) est que les différences d'ordonnancement des octets composant un mot (") ne posent pas de problème dans un réseau de systèmes hétérogènes ; ainsi, cette transformation est utilisée aujourd'hui par la plupart des protocoles d'échange standardisés.


title: Unicode

text: D'autre part, l'UTF-8 est totalement compatible pour la transmission de textes par des protocoles basés sur le jeu de caractères ASCII, ou peut être rendu compatible (au prix d'une transformation sur plusieurs octets des caractères non-ASCII) avec les protocoles d'échange supportant les jeux de caractères codés sur (qu'ils soient basés sur ou de nombreux autres jeux de caractères codés sur définis par des normes nationales ou des systèmes propriétaires particuliers).


title: Unicode

text: Son principal défaut est le codage de longueur très variable ( pour les points de code assignés aux caractères ASCII–, pour les autres points de code), même si l'auto-synchronisation propre à l'encodage UTF-8 permet de déterminer le début d'une séquence à partir d'une position aléatoire (en effectuant au plus supplémentaires des codets qui précèdent). Cependant, cet encodage n'est pas conçu pour faciliter le traitement des chaînes de caractères : on lui préfère alors souvent l'UTF-16, parfois l'UTF-32 (gourmand en mémoire).L'UTF-16 est un bon compromis lorsque la place mémoire n'est pas trop restreinte, car la grande majorité des caractères Unicode assignés pour les écritures des langues modernes (dont les caractères les plus fréquemment utilisés) le sont dans le plan multilingue de base et peuvent donc être représentés sur . La version française de l' nomme ces mots de des « seizets », mais la version internationale les décrit cependant bien comme de classiques mots de composés de deux octets, et soumis aux règles usuelles de boutisme.


title: Unicode

text: C'est notamment le codage qu'utilise la plate-forme Java en interne, ainsi que Windows pour ses APIs compatibles Unicode (avec le type codice_1).


title: Unicode

text: Certains cadres légaux, tels le utilisé en Chine, peuvent exiger la prise en charge des plans supplémentaires, ceux-ci contenant notamment des caractères présents dans les noms propres.


title: Unicode

text: Les points de code des seize plans supplémentaires nécessitent une transformation sur deux mots de :


title: Unicode

text: Il est possible de déterminer le début de la séquence de codage à partir d'un point quelconque d'un texte représenté en UTF-16 en effectuant au maximum une lecture supplémentaire, uniquement si ce codet est dans la demi-zone basse. Cette forme est plus économique et plus facile à traiter rapidement que l'UTF-8 pour la représentation de textes contenant peu de caractères ASCII (U+0000 à U+007F).


title: Unicode

text: Comme la plupart des caractères couramment usités résident dans le plan de base, l'encodage des plans supplémentaires a longtemps été peu testé dans les logiciels, conduisant à des bogues ou des problèmes de sécurité même dans des logiciels largement diffusés, par exemple en supposant à tort qu'il soit sain de découper ou de tronquer une chaîne entre deux unités de code quelconque (ce qui n'est pas le cas avec UTF-16, pas plus qu'avec UTF-8, ni même avec tous les autres codages multi-octets dont les codages historiques d'avant Unicode/ISO/CEI 10646).


title: Unicode

text: Toutefois, cette transformation possède deux schémas de codage incompatibles qui dépendent de l'ordonnancement des octets dans la représentation d'entiers sur . Pour résoudre cette ambiguïté et permettre la transmission entre systèmes hétérogènes, il est nécessaire d'adjoindre une information indiquant le schéma de codage utilisé (UTF-16BE ou UTF-16LE), ou bien de préfixer le texte codé avec la représentation du point de code valide U+FEFF (assigné au caractère « espace insécable de largeur nulle », un caractère aujourd'hui réservé à ce seul usage en tant que marqueur d'ordonnancement des octets), puisque le point de code « renversé » U+FFFE valide est un non-caractère, interdit dans les textes conformes à Unicode et .


title: Unicode

text: L'autre défaut d'UTF-16 est qu'un texte transformé avec lui et transmis avec l'un ou l'autre des deux schémas de codage contient un grand nombre d'octets nuls ou ayant une valeur en conflit avec les valeurs d'octets réservées par certains protocoles d'échange : le principal usage d'UTF-16 est dans le traitement en mémoire au sein des logiciels (également dans le stockage de métadonnées de certains systèmes de fichiers, et dans certaines bases de données où il peut être plus compact que l'UTF-8, notamment pour les textes asiatiques), le codage UTF-8 lui étant préféré pour les échanges sur les réseaux (et même dont la prise en charge est hautement recommandée voire maintenant exigée pour les protocoles du web de l'IETF, la prise en charge de l'UTF-16 et ses variantes dans ces protocoles restant facultative et en pratique très peu utilisée, d'autant que l'avantage relatif de compacité de l'UTF-16 disparaissant avec l'emploi fréquent de la compression de données, maintenant bien prise en charge dans de nombreux protocoles Internet).


title: Unicode

text: L'UTF-32 est utilisé lorsque la place mémoire n'est pas un problème et que l'on a besoin d'avoir accès à des caractères de manière directe et sans changement de taille (hiéroglyphes égyptiens).


title: Unicode

text: L'avantage de cette transformation standardisée est que tous les codets ont la même taille. Il n'est donc pas nécessaire de lire des codets supplémentaires pour déterminer le début de la représentation d'un point de code.


title: Unicode

text: Toutefois, ce format est particulièrement peu économique (y compris en mémoire) puisqu'il « gaspille » inutilement au moins un octet (toujours nul) par caractère. La taille en mémoire d'un texte joue négativement sur les performances puisque cela nécessite plus de lectures et écritures sur disque en cas de saturation de la mémoire vive, et que cela diminue aussi les performances du cache mémoire des processeurs.


title: Unicode

text: Pour les textes écrits dans les langues modernes actuelles (hormis certains caractères rares du plan idéographique supplémentaire) et n'utilisant donc que les points de code du plan multilingue de base, cette transformation double la quantité mémoire nécessaire par rapport à l'UTF-16.


title: Unicode

text: Comme l'UTF-16, l'UTF-32 possède plusieurs schémas de codage dépendant de l'ordonnancement des octets composant un entier de plus de (deux schémas de codage de l'UTF-32 sont standardisés, UTF-32BE et UTF-32LE). Il est donc aussi nécessaire de préciser ce schéma de codage, ou de le déterminer en préfixant le texte par la représentation en UTF-32 du point de code U+FEFF. Comme l'UTF-16, la présence d'octets nuls dans les schémas de codage standardisés de l'UTF-32 le rend incompatible avec de nombreux protocoles d'échange entre systèmes hétérogènes.


title: Unicode

text: Aussi ce format n'est utilisé le plus souvent que très localement pour certains traitements en tant que forme intermédiaire plus facile à manipuler, et on lui préfère souvent la transformation UTF-16 souvent plus performante pour traiter et stocker des quantités importantes de textes, la conversion entre les deux étant très simple à réaliser, et très peu coûteuse en termes de complexité de traitement.


title: Unicode

text: En fait, de très nombreuses bibliothèques de traitement de textes sont écrites uniquement avec l'UTF-16 et sont plus performantes qu'en UTF-32, même lorsque les textes contiennent des caractères des plans supplémentaires (car ce cas de figure reste rare dans la très grande majorité des cas).


title: Unicode

text: On notera toutefois que la transformation en UTF-32 utilise des codets sur , dont de très nombreuses valeurs peuvent ne représenter aucun point de code valide (valeurs hors des deux intervalles représentant les points de code valides U+0000 à U+D7FF et U+E000 à U+10FFFF), donc aucun caractère valide ou réservé (toute information qui y serait contenue ne peut donc pas être du texte au sens d'Unicode). La transmission de textes utilisant ces valeurs invalides de codets dans un des schémas de codage standardisés de l'UTF-32 est interdite pour tout système conforme à Unicode (il faut utiliser plutôt les points de code à usage privé), puisqu'il sera impossible de les représenter dans une autre transformation UTF avec lesquelles les trois UTF standardisées sont bijectivement compatibles.


title: Unicode

text: Il s'agit d'une transformation de l'Unicode qui n'est pas définie par le Consortium Unicode, mais par l'administration de normalisation en Chine, où son support est obligatoire dans les applications. Historiquement c'était un jeu de caractères codé, qui a été étendu pour prendre en charge l'intégralité du répertoire UCS par une transformation algorithmique complétant une large table de correspondance d'un codage à l'autre.


title: Unicode

text: Affirmer qu'Unicode code des caractères revient à affirmer qu'il attribue un numéro à des symboles abstraits, selon un principe de codage logique. Unicode ne code en revanche pas les représentations graphiques des caractères, les glyphes. Il n'y a donc pas une bijection entre la représentation du caractère et son numéro, puisque toutes les variantes graphiques de style sont unifiées.


title: Unicode

text: De plus, contrairement à une police ASCII ou latin-1 classique, la sélection d'un glyphe par un code n'est pas unique et est souvent contextuelle, et peut aussi afficher le même glyphe pour des codes différents. Ainsi, le caractère français « é » peut être décrit de deux manières : soit en utilisant directement le numéro correspondant au « é », soit en faisant suivre le numéro du « e » par celui de l'accent aigu sans chasse. Quelle que soit l'option choisie, le même glyphe sera affiché. On dira du premier caractère qu'il est précomposé, du second que c'est une composition (deux caractères forment un seul glyphe composé des deux). Ceci est autorisé et même hautement recommandé car les différentes formes de codage sont classées par Unicode comme « canoniquement équivalentes », ce qui signifie que deux formes de codage équivalentes devraient être traitées de façon identique.


title: Unicode

text: De nombreux caractères composites sont dans ce cas et peuvent être codés de ces deux manières (ou plus, certains caractères composés pouvant être décomposés de plusieurs façons, notamment quand ils comportent plusieurs signes diacritiques). Le plus souvent, le caractère précomposé est préférable pour le codage du texte, si celui-ci existe (c'est le cas pour le grec polytonique, par exemple, lequel, codé en décomposition, peut ne pas être satisfaisant graphiquement : selon les polices de caractères, les différents constituants du glyphe étant parfois mal disposés et peu lisibles). Toutefois, tous les caractères composites ne disposent pas d'un point de code unique pour leur forme précomposée.


title: Unicode

text: De même, certains systèmes d'écriture, comme la devânagarî, le persan ou l'arabe, nécessitent un traitement complexe des ligatures : les graphèmes changent de forme en fonction de leur position ou de leurs voisins (voir Variante contextuelle et Lettre conjointe). La sélection du glyphe correct nécessite un traitement permettant de déterminer la forme contextuelle à sélectionner dans la police, alors même que toutes les formes contextuelles sont codées de façon identique en Unicode.


title: Unicode

text: Pour ces raisons, une police Unicode doit être maniée avec prudence. Par exemple, une police comportant tous les glyphes existants ne suffit pas. Il faut également que le système d'affichage (le moteur de rendu) possède les mécanismes à même de traiter les ligatures, variantes contextuelles et formes conjointes propres à certaines langues. À l'inverse, une police qui ne représente qu'une partie des caractères mais sait les afficher correctement, mérite mieux le titre de « police Unicode ». Enfin, certaines contraintes techniques des formats de polices peuvent les empêcher de supporter la totalité du répertoire. En pratique, il est impossible (en 2009) de trouver une police de caractères unique supportant l'ensemble du répertoire.


title: Unicode

text: Une police de caractères Unicode est donc seulement une police permettant d'afficher directement un texte codé selon toutes les formes autorisées par Unicode, et permettant de supporter un sous-ensemble cohérent adapté à une ou plusieurs langues pour supporter une ou plusieurs écritures. Aucune police de caractère Unicode ne peut « fonctionner » seule, et le support complet de l'écriture nécessite un support de celles-ci dans un moteur de rendu, capable de détecter les formes de codage équivalentes, rechercher les formes contextuelles dans le texte et sélectionner les différents glyphes d'une police codée avec Unicode, en s'aidant au besoin de tables de correspondances incluses dans la police elle-même.


title: Unicode

text: La bibliothèque logicielle multiplate-forme ICU permet de manipuler des données encodées avec Unicode. Un support d'Unicode spécifique à certaines plates-formes est également intégré par les systèmes modernes (Java, Microsoft Windows, GNU/Linux, bibliothèques standards C/C++, Python, etc.).


title: Unicode

text: Les types à utiliser pour stocker des variables Unicode, sont les suivants : Unicode souffre toutefois encore d'un faible support des expressions rationnelles par certains logiciels, même si des bibliothèques comme ICU et Java peuvent les supporter. Un tel support n'a pas encore été standardisé pour ECMAScript et n'est fourni qu'avec l'aide de bibliothèques créées avec le langage ou des interfaces d'interopérabilité avec d'autres systèmes (notamment avec CORBA, COM) ou langages (notamment C++ et Java).


title: Unicode

text: Le partitionnement à jour peut être trouvé sur le site officiel d'Unicode. Cependant, étant donné le rôle important d'Unicode actuellement (), on décrira ici les principaux blocs de caractères. Les noms français sont les noms officiels d', la norme internationale bilingue qui reprend les mêmes caractères qu'Unicode. Ils sont aussi officiels que les noms anglais.


title: Unicode

text: L'ancien standard est obsolète et incompatible avec la norme et le standard et toutes ses versions ultérieures (dont la version 2.0 et toutes les suivantes qui sont désormais synchronisées avec les éditions de la norme ISO/CEI 10646-1 révisée, pour leur répertoire commun ainsi que les formes de codage normalisées valides, la norme ISO/CEI ayant réduit son espace de codage à ses 17 premiers plans) ; la principale incompatibilité est celle des blocs de caractères Hangul utilisés pour l'écriture de la langue coréenne qui ont changé de position dans Unicode 1.1 pour s'aligner avec la norme ISO, et dont les anciens points de code ont depuis été assignés à d'autres blocs. La table ci-dessous est compatible avec (toutes versions) et (ou ultérieur). N.b. La casse des noms de bloc n’est pas normative. « Latin de base » est donc équivalent à « LATIN DE BASE ».


title: Unicode

text: Dans les tableaux suivants, tout nom de bloc ayant une note ramenant à un PDF officiel Unicode signifie que la page Wikipédia associée à ce bloc est inexistante ou erronée. Langues écrites :


title: Unicode

text: "Alphabétique"


title: Unicode

text: "[L]ogographique, et [S]yllabique ou [A]lphabétique"


title: Unicode

text: "Consonantique (abjads sémitiques)"


title: Unicode

text: "Alphasyllabique (abugidas)"


title: Unicode

text: !scope="col" colspan="2"| Points de code !scope="col" rowspan="2"| Nom du bloc en français !scope="col" rowspan="2"| PDF officiel !scope="col" rowspan="2"| En savoir plus !scope="col"| Début !scope="col"| Fin


title: UTF-32

text: UTF-32 est un codage des caractères défini par Unicode où chaque caractère est codé sur un mot de 32 bits.


title: UTF-32

text: Le codage était défini dans l’annexe 19 à la norme Unicode. Depuis, l’annexe est devenue obsolète, car UTF-32 fait partie intégrante de la norme Unicode, dans son chapitre 3 "Conformance" où elle est définie de façon très stricte.


title: UTF-8

text: UTF-8 (abréviation de l'anglais "" - ) est un codage de caractères informatiques conçu pour coder l'ensemble des caractères du « répertoire universel de caractères codés », initialement développé par l'ISO dans la norme internationale ISO/CEI 10646, aujourd'hui totalement compatible avec le standard Unicode, en restant compatible avec la norme ASCII limitée à l'anglais de base, mais très largement répandue depuis des décennies.


title: UTF-8

text: L'UTF-8 est utilisé par 82,2 % des sites web en , 87,6 % en 2016, 90,5 % en 2017, 93,1 % en et près de 95,2 % en . Par sa nature, UTF-8 est d'un usage de plus en plus courant sur Internet, et dans les systèmes devant échanger de l'information. Il s'agit également du codage le plus utilisé dans les systèmes GNU, Linux et compatibles pour gérer le plus simplement possible des textes et leurs traductions dans tous les systèmes d'écritures et tous les alphabets du monde.


title: UTF-8

text: UTF-8 est un « format de transformation » issu à l'origine des travaux pour la norme ISO/CEI 10646, c'est-à-dire que UTF-8 définit un codage pour tout point de code scalaire (caractère abstrait ou « non-caractère ») du répertoire du jeu universel de caractères codés ("Universal Character Set", ou "UCS"). Ce répertoire est aujourd'hui commun à la norme ISO/CEI 10646 (depuis sa révision 1.) et au standard Unicode (depuis sa version 1.1).


title: UTF-8

text: UTF-8 est officiellement défini dans la norme ISO/CEI 10646 depuis son adoption dans un amendement publié en 1996. Il fut aussi décrit dans le standard Unicode et fait partie de ce standard depuis la version 3.0 publiée en 2000. En 1996 fut publiée la (« "UTF-8, a transformation format of ISO 10646" ») dans le but de fournir une spécification accessible d'UTF-8 et d'entamer sa standardisation au sein de l"'Internet Engineering Task Force" (IETF). Cette RFC fut révisée en 1998 () puis finalement en 2003 (), cette dernière version faisant d'UTF-8 un des standards de l'internet (STD 63).


title: UTF-8

text: Techniquement, il s'agit de coder les caractères Unicode sous forme de séquences de un à quatre codets d'un octet chacun. La norme Unicode définit entre autres un ensemble (ou répertoire) de caractères. Chaque caractère est repéré dans cet ensemble par un index entier aussi appelé « point de code ». Par exemple le caractère « € » (euro) est le 8365 caractère du répertoire Unicode, son index, ou point de code, est donc 8364 (0x20AC) (on commence à compter à partir de 0).


title: UTF-8

text: Le répertoire Unicode peut contenir plus d'un million de caractères, ce qui est bien trop grand pour être codé par un seul octet (limité à des valeurs entre 0 et 255). La norme Unicode définit donc des méthodes standardisées pour coder et stocker cet index sous forme de séquence d'octets : UTF-8 est l'une d'entre elles, avec UTF-16, UTF-32 et leurs différentes variantes.


title: UTF-8

text: La principale caractéristique d'UTF-8 est qu'elle est rétro-compatible avec le standard ASCII, c'est-à-dire que tout caractère ASCII se code en UTF-8 sous forme d'un unique octet, identique au code ASCII. Par exemple « A » (A majuscule) a pour code ASCII 65 (0x41) et se code en UTF-8 par l'octet 65. Chaque caractère dont le point de code est supérieur à 127 (0x7F) (caractère non ASCII) se code sur 2 à . Le caractère « € » (euro) se code par exemple sur : 226, 130, et 172 (0xE2, 0x82 et 0xAC).


title: UTF-8

text: Le numéro (valeur scalaire) de chaque point de code dans le jeu universel de caractères (UCS) est donné par la norme ISO/CEI 10646 qui assigne un point de code à chaque caractère valide, puis permet leur codage en leur attribuant une valeur scalaire identique au point de code ; cette norme est reprise dans le standard Unicode (qui utilise depuis la version 1.1 le même répertoire).


title: UTF-8

text: Tous les « points de code » ("code points" en anglais) de U+0000 à U+D7FF et de U+E000 à U+10FFFF sont représentables en UTF-8 et uniquement ceux-là. Les seuls points de code valides dans l'espace de l'UCS et qui ne doivent pas être représentés dans UTF-8 sont ceux qui sont attribués aux « demi-codets » ("surrogates" en anglais), car ils ne sont pas représentables de façon bijective dans le codage UTF-16 et ne sont pas non plus par eux-mêmes des caractères : contrairement aux autres points de code, les demi-codets n'ont donc "pas" de « valeur scalaire » ("scalar value" en anglais) définie.


title: UTF-8

text: Les points de code ayant une valeur scalaire de 0 à 127 (points de codes U+0000 à U+007F, attribués aux caractères du jeu codé sur 7 bits dans l'ASCII) sont codés sur un seul octet dont le bit de poids fort est nul.


title: UTF-8

text: Les autres points de code (attribués ou non à des caractères) ayant une valeur scalaire supérieure à 127 (sauf ceux auxquels sont attribués des « demi-codets » qui ne sont pas eux-mêmes des caractères) sont codés sur plusieurs octets ayant chacun leur bit de poids fort non nul : les bits de poids fort du premier octet de la séquence codée forment une suite de 1 de longueur égale au nombre total d'octets (au moins 2) utilisés pour la séquence entière suivie d'un 0 et les octets suivants nécessaires ont leurs deux bits de poids fort positionnés à 10.


title: UTF-8

text: Ce principe pourrait être étendu jusqu'à huit octets pour un seul point de code (pour représenter des points de code comprenant jusqu'à 42 bits), mais la version normalisée actuelle d'UTF-8 pose la limite à quatre.


title: UTF-8

text: Le codage interdit la représentation des points de code réservés aux "demi-codets" (qui n'ont pas de valeur scalaire définie, afin de préserver la compatibilité avec UTF-16 qui ne permet pas non plus de les représenter). Il autorise cependant la représentation des points de code assignés à des "non-caractères" (alors même que leur présence est interdite dans un texte conforme).


title: UTF-8

text: Dans toute chaîne de caractères codée en UTF-8, on remarque que :


title: UTF-8

text: Le plus grand point de code valide assignable à un caractère valide "non privé" est U+EFFFD dans le (il n'est pas encore assigné mais peut le devenir dans l'avenir), mais le codage UTF-8 peut être utilisé aussi, de façon conforme aux normes, pour représenter n'importe quel caractère valide à usage privé (dans une des trois plages U+E000 à U+F8FF, U+F0000 à U+FFFFD, et U+100000 à U+10FFFD).


title: UTF-8

text: L'acceptation ou non des "non-caractères" ou des "caractères d'usage privé" est laissée aux applications ou protocoles de transport de texte. Cependant les "non-caractères" ne sont normalement pas acceptés dans des textes strictement conformes au standard Unicode où à la norme ISO/CEI 10646.


title: UTF-8

text: Certaines applications imposent des restrictions supplémentaires sur les points de code utilisables (par exemple, les standards HTML et XML interdisent, dans tout document conforme à ces spécifications, la présence de la plupart des caractères de contrôle entre U+0000 et U+001F et entre U+0080 et U+009F, en dehors du contrôle de la tabulation U+0009 considéré comme un caractère blanc, et interdisent aussi les "non-caractères").


title: UTF-8

text: Tout point de code est toujours représenté par exactement la même séquence binaire, quelle que soit sa position relative dans le texte, et ces séquences sont autosynchronisées sur la position indivise des codets significatifs (ici les octets : on peut toujours savoir si un octet débute ou non une séquence binaire effective) ; ce codage autorise donc les algorithmes rapides de recherche de texte, tels que l'algorithme de Boyer-Moore.


title: UTF-8

text: Ce n'est pas toujours le cas des codages contextuels (qui utilisent généralement la compression de données, par exemple SCSU défini dans la note technique standard UTS#6 optionnelle complétant le standard Unicode) et qui peuvent nécessiter de lire le texte complètement depuis le début, ni des codages basés sur plus d'une seule variable d'état (ou qui incorporent des codes supplémentaires de redondance) ; au mieux certains de ces codages peuvent demander d'utiliser des algorithmes complexes de resynchronisation, basés souvent sur des heuristiques qui peuvent échouer ou conduire à de fausses interprétations si on ne lit pas le texte depuis le début (par exemple BOCU-1).


title: UTF-8

text: Dans le tableau ci-dessus, on voit que le caractère « € » se trouve au point de code U+20AC, soit en décimal 8364, ou en binaire : 100000 10101100.


title: UTF-8

text: Ce dernier nombre comporteformula_1 chiffres binaires significatifs, donc au moins sont nécessaires pour encoder le caractère « € ». La norme présentée ci-dessus impose en réalité trois octets pour représenter ces caractères.


title: UTF-8

text: Avec quatre octets à disposition, il serait possible de placer selon cette norme jusqu'à , donc en particulier de représenter le caractère « € » par "00000 00"100000 10101100, en lui ajoutant en tête non significatifs. Toutefois, la norme impose qu'un programme décodant l'UTF-8 ne doit pas accepter de chaînes d'octets inutilement longues comme dans cet exemple, ce pour des raisons de sécurité (éviter l'exploitation de tests de sous-chaînes trop tolérants). Ainsi « € » se codera : 11100010 10000010 10101100, mais le codage 11110000 10000010 10000010 10101100, déduit de la représentation de « € » sur , bien qu'univoque, ne doit pas être utilisé.


title: UTF-8

text: Une telle forme plus longue que nécessaire s'appelle en anglais "". De telles formes (initialement autorisées dans des spécifications anciennes avant qu'elles soient normalisées successivement par la RFC initiale publiée par le Consortium X/Open, puis parallèlement par la norme ISO 10646 et le standard Unicode) sont interdites et doivent être traitées comme invalides.


title: UTF-8

text: Le codage est prédictif et permet toujours de retrouver la position du premier octet d'une séquence représentant un point de code, à partir de la valeur d'un octet quelconque et de la lecture d'un nombre limité d'octets voisins, dans les deux directions de lecture (ce sera toujours l'octet lui-même, ou le premier éligible dans un des 1 à voisins). De telles séquences sont dites mal formées ("ill-formed"). (Voir la référence ci-dessus, notamment la seconde table dans la clause de conformité "D36" du standard ou l'article Unicode).


title: UTF-8

text: En revanche, les points de code réservés (pas encore alloués à des caractères) sont autorisés (même si l'interprétation des caractères peut rester ambigüe) : il appartient aux applications de décider si ces caractères sont acceptables ou non, sachant que les mêmes applications continueront probablement à être utilisées alors que ces positions auront été assignées dans les normes Unicode et ISO 10646 à de nouveaux caractères parfaitement valides.


title: UTF-8

text: De même les autres points de code assignés de façon permanente aux autres « "non-caractères" » sont interdits dans les textes conformes à la norme ISO/CEI 10646 ou au standard Unicode : par exemple U+"x"FFFE à U+"x"FFFF (où x indique un numéro de plan hexadécimal de 0 à 10). Mais ils restent encodables et décodables en tant que tels en UTF-8 (les "non-caractères" sont à disposition des applications qui peuvent en faire un usage au sein d'API internes, par exemple comme codes intermédiaires nécessaires à l'implémentation de certains traitements).


title: UTF-8

text: La restriction de l'espace de représentation aux seuls points de code inférieurs ou égaux à U+10FFFF (non compris les points de codes assignés aux "demi-codets") n'a pas toujours été appliquée :


title: UTF-8

text: Un texte en US-ASCII est codé identiquement en UTF-8 (lorsque le BOM n'est pas utilisé).


title: UTF-8

text: Du fait qu'un caractère est découpé en une suite d'octets (et non en mots de plusieurs octets), il n'y a pas de problème de boutisme (endianness en anglais).


title: UTF-8

text: Pour la plupart des langues à écriture latine, les fichiers de données numériques ou les codes sources de programmes, ou de nombreux protocoles textuels de communication (comme FTP, HTTP ou MIME), qui utilisent abondamment (voire parfois exclusivement dans certaines parties) les caractères US-ASCII, UTF-8 nécessite moins d'octets que l'UTF-16 ou l'UTF-32.


title: UTF-8

text: De nombreuses techniques de programmation informatique valables avec les caractères uniformément codés sur un octet le restent avec UTF-8, notamment :


title: UTF-8

text: Il s'agit d'un codage auto-synchronisant (en lisant un seul octet on sait si c'est le premier d'un caractère ou non).


title: UTF-8

text: Les points de code sont représentés en UTF-8 par des séquences d'octets de taille variable (de même qu'en UTF-16), ce qui rend certaines opérations sur les chaînes de points de code plus compliquées : le calcul du nombre de points de code ; le positionnement à une distance donnée (exprimée en nombre de points de code) dans un fichier texte et en règle générale toute opération nécessitant l'accès au point de code de position "N" dans une chaîne.


title: UTF-8

text: Une taille variable des caractères d'une chaine empêche l'exploitation d'algorithmes efficaces en matière de comparaisons de chaines, telles que l'algorithme de et pénalise donc fortement les traitements de données en masse comme dans l'exploitation des bases de données. Ce problème est toutefois davantage lié aux aspects de normalisation que d'encodage.


title: UTF-8

text: Pour les langues utilisant beaucoup de caractères extérieurs à US-ASCII, UTF-8 occupe sensiblement plus d'espace. Par exemple, les idéogrammes courants employés dans les textes de langues asiatiques comme le chinois ou le japonais (kanji, par exemple) utilisent en UTF-8 contre en UTF-16.


title: UTF-8

text: De manière générale, les écritures employant beaucoup de points de code de valeur égale ou supérieure à U+0800 occupent plus de mémoire que s'ils étaient codés avec UTF-16 (UTF-32 sera plus efficace uniquement pour les textes utilisant majoritairement des écritures anciennes ou rares codées hors du plan multilingue de base, c'est-à-dire à partir de U+10000, mais il peut aussi s'avérer utile localement dans certains traitements pour simplifier les algorithmes, car les caractères y ont toujours une taille fixe, la conversion des données d'entrée ou de sortie depuis ou vers UTF-8 ou UTF-16 étant triviale).


title: UTF-8

text: Par son système de codage, il était éventuellement possible de représenter un code de différentes manières en UTF-8, ce qui pouvait poser un problème de sécurité : un programme mal écrit peut accepter un certain nombre de représentations UTF-8, normalement invalides selon la et dans les spécifications (maintenant équivalentes entre elles) publiées par l'ISO 10646 et Unicode ; mais ce n'était pas le cas selon la spécification originale, qui permettait de les convertir comme un seul et même caractère.


title: UTF-8

text: Ainsi, un logiciel détectant certaines chaînes de caractères (pour prévenir les injections SQL, par exemple) pouvait échouer dans sa tâche (ce n'est plus le cas si la conformité du codage avec la définition stricte et normalisée d'UTF-8 est vérifiée avant toute chose).


title: UTF-8

text: Prenons un exemple tiré d'un cas réel de virus attaquant des serveurs HTTP du Web en 2001 (Crypto-Gram: July 15, 2000 Microsoft IIS and PWS Extended Unicode Directory Traversal Vulnerability Microsoft IIS 4.0/5.0 Web Directory Traversal Vulnerability). Une séquence à détecter pourrait être « /../ » représentée en ASCII ("a fortiori" en UTF-8) par les octets « codice_1 » en notation hexadécimale. Cependant, une manière malformée de coder cette chaîne en UTF-8 serait « codice_2 », appelée aussi en anglais "overlong form (forme superlongue)". Si le logiciel n'est pas soigneusement écrit pour rejeter cette chaîne, en la mettant par exemple sous forme canonique, une brèche potentielle de sécurité est ouverte. Cette attaque est appelée "directory traversal".


title: UTF-8

text: Les logiciels acceptant du texte codé en UTF-8 ont été blindés pour rejeter systématiquement ces formes longues car non conformes à la norme : soit le texte entier est rejeté ; mais parfois les séquences invalides sont remplacées par un caractère de substitution (généralement U+FFFD si l'application accepte et traite ce caractère normalement ; parfois un point d'interrogation ou le caractère de contrôle de substitution "SUB" U+001A de l'ASCII, qui peuvent poser d'autres problèmes de compatibilité) ; moins souvent, ces séquences interdites sont éliminées silencieusement (ce qui est très peu recommandé).


title: UTF-8

text: UTF-8 ne peut représenter le caractère de contrôle nul (U+0000) qu'avec un seul octet nul, ce qui pose des problèmes de compatibilité avec le traitement de chaînes qui ne codifient pas séparément leur longueur effective car cet octet nul ne représente alors aucun caractère mais la fin de chaîne (cas très courant en langage C ou C++ et dans les API des systèmes d'exploitation). Si un caractère nul doit être stocké dans un texte sur de tels systèmes, il sera nécessaire de recourir à un système d'échappement, spécifique de ce langage ou système avant de coder en UTF-8 le texte ainsi transformé. En pratique, aucun texte valide ne devrait contenir ce caractère. Une autre solution est d'utiliser une des séquences interdites dans le codage UTF-8 standard afin de coder le caractère par cette séquence ; mais le texte ainsi codé ne sera pas conforme au codage UTF-8 standard, même si le codage ainsi modifié reste un format de transformation universelle conforme (qui ne doit cependant pas être désigné comme « UTF-8 »). Voir la section ci-dessous relative aux variantes non standards basées sur UTF-8.


title: UTF-8

text: L'utilisation d'UTF-8, comme de tout encodage à pas variable, dans une base de données pose de multiples problèmes de performances.


title: UTF-8

text: Les opérations de comparaisons (=, >, Kenneth Thompson lors d'un dîner avec Rob Pike aux alentours de . Appelé alors "FSS-UTF", il a été immédiatement utilisé dans le système d'exploitation Plan 9 sur lequel ils travaillaient. Une contrainte à résoudre était de coder les caractères nul et '/' comme en ASCII et qu'aucun octet codant un autre caractère n'ait le même code. Ainsi les systèmes d'exploitation UNIX pouvaient continuer à rechercher ces deux caractères dans une chaîne sans adaptation logicielle.


title: UTF-8

text: FSS-UTF a fait l'objet d'un standard préliminaire X/Open de 1993 qui fut proposé à l'ISO. Cette dernière l'adopta dans le cadre de la norme ISO/CEI 10646 sous le nom d'abord d'UTF-2, puis finalement UTF-8.


title: UTF-8

text: Le codage original FSS-UTF était destiné à remplacer le codage multi-octets UTF-1 initialement proposé par l'ISO 10646. Ce codage initialement permissif, permettait plusieurs représentations binaires pour le même caractère (cela a été interdit dans la version normalisée dans la RFC publiée par le Consortium X/Open, et approuvé par Kenneth Thompson).


title: UTF-8

text: De plus il pouvait (dans une version préliminaire non retenue) coder tous les caractères dont la valeur de point de code comprenait jusqu'à en définissant un huitième type d'octet (dans des séquences comprenant jusqu'à ), au lieu des d'octets finalement retenus pour ne coder (dans des séquences comprenant aussi jusqu'à ) que les points de code jusqu'à dans la version initiale d'UTF-8 (publiée par le Consortium X/Open sous le nom FSS-UTF, puis proposé par le comité technique d'ISO 10646 comme la proposition « UTF-2 » alors encore en concurrence avec la proposition « UTF-1 », jusqu'à ce que la proposition UTF-2 soit retenue et adopte le nom UTF-8 déjà retenu et utilisé dans X/Open et Plan 9).


title: UTF-8

text: Ce codage UTF-8 a été restreint encore lorsque Unicode et ISO 10646 sont convenus de n'allouer des caractères que dans les plans afin de maintenir indéfiniment la compatibilité avec UTF-16 (sans devoir le modifier), en restreignant les séquences jusqu'à seulement et en n'utilisant que les des d'octets (ce qui a nécessité de définir comme invalides de nouvelles valeurs d'octet et certaines séquences d'octets pourtant valides individuellement).


title: UTF-8

text: L'IETF exige maintenant qu'UTF-8 soit pris en charge par défaut (et non pas simplement supporté en tant qu'extension) par tous les nouveaux protocoles de communication d'Internet (publiés dans ses RFC numérotées) qui échangent du texte (les plus anciens protocoles n'ont toutefois pas été modifiés pour rendre ce support obligatoire, mais seulement étendus si possible, pour le supporter de façon optionnelle, si cela produit des incompatibilités ou introduit de nouveaux risques de sécurité : c'est le cas de protocoles Internet très utilisés comme DNS, HTTP, FTP, Telnet et de HTML dans ses versions initiales alors pas encore standardisés par le W3C et l'ISO).


title: UTF-8

text: Il est devenu incontournable, notamment dans les principaux logiciels de communication du web et aujourd'hui les systèmes d'exploitation : Toutefois, des variantes d'UTF-8 (basées sur les possibilités de codage de la version initiale non restreinte) ont continué à être utilisées (notamment dans l'implémentation de la sérialisation des chaînes Java) pour permettre de coder sous forme d'un échappement multioctets certains caractères ASCII réservés normalement codés sur un seul octet (par exemple le caractère nul).


title: UTF-8

text: De plus, certains systèmes utilisent des chaînes de caractères non restreints : par exemple, Java (et d'autres langages y compris des bibliothèques de manipulation de chaînes en C, PHP, Perl, etc.) représentent les caractères avec des unités de codage sur (ce qui permet de stocker les chaînes en utilisant le codage UTF-16, mais sans les contraintes de validité imposées par UTF-16 concernant les valeurs interdites et l'appariement dans l'ordre des « demi-codets » ou "surrogates") ; dans ce cas, les unités de codage sont traitées comme des valeurs binaires et il est nécessaire de les sérialiser de façon individuelle (indépendamment de leur interprétation possible comme caractères ou comme demi-points de code). Dans ce cas, chaque unité de codage qui représente un « caractère » (non-contraint) est sérialisé sous forme de séquences comprenant jusqu'à chacune, et certains octets interdits par l'implémentation (par exemple les caractères nuls ou la barre de fraction « / » dans un système de fichiers ou d'autres caractères codés sur un octet dans d'autres protocoles) sont codés sous forme de séquences d'échappement à deux octets dont aucun n'est nul, en utilisant simplement le principe de codage de la première spécification de FSS-UTF (avant celle qui a été retenue par le Consortium X/Open dans sa RFC initiale où ces échappements étaient spécifiquement interdits et le sont restés).


title: UTF-8

text: Avant l'adoption de la proposition UTF-2 retenue pour UTF-8, il a également existé une variante UTF-1, où les codages multiples étaient impossibles, mais cela nécessitait un codage/décodage plus difficile, devant prendre en compte la position de chaque octet et utilisant un certain nombre de valeurs « magiques ».


title: UTF-8

text: Ces extensions ou variantes ne doivent pas être appelées « UTF-8 ».


title: UTF-8

text: Avant l'accord survenu entre l'ISO/IEC et Unicode, il a existé une définition (aujourd'hui obsolète) permettant de coder (selon le même principe) des points de code comptant jusqu'à 31 bits significatifs (jusqu'à U-7FFFFFFFFFFFF) en utilisant des séquences comptant jusqu'à 6 octets. Cette définition reposait sur une ancienne RFC publiée par l'IETF, aujourd'hui obsolète (incompatible et non conforme avec les versions actuelles des standards Unicode et ISO/IEC 10646).


title: UTF-8

text: L'accord entre les deux organismes de normalisation a interdit toute utilisation valide des points de code supérieurs à U+10FFFF (soit 17 plans de points de code) pour les échanges entre systèmes compatibles. Par conséquent, les octets préfixes de l'UTF-8 ne peuvent plus être supérieurs à 0xF4 en hexadécimal. L'octet préfixe 0xF4 ne peut être utilisé que pour coder (sur 4 octets) les points de code du 17et dernier plan valide (U+100000 à U+10FFFF), ce qui impose désormais une restriction sur la valeur du 2 octet, mais permet une interopérabilité avec les standards de codage UTF-16. L'accord s'applique également à la définition actuelle de l'UTF-32, lui aussi modifié pour interdire l'utilisation de plus de 17 plans de points de code.


title: UTF-8

text: Cependant il peut exister des systèmes utilisant une telle extension de l'UTF-8 (ou de l'UTF-32) de façon interne et privée, mais qui n'est pas destinée aux échanges de textes standards entre systèmes interopérables. Ce type de codage est plutôt destiné à une utilisation intermédiaire nécessaire aux traitements internes dans certaines bibliothèques de code ou des formats de fichiers ou sérialisation spécifiques souhaitant encapsuler de façon universelle autre chose que du texte (par exemple des objets binaires, du code exécutable, des images, des marques spéciales, des métadonnées, des jeux de caractères privés ou non encore normalisés et faisant l'objet de tests ou d'évaluation au sein d'un groupe limité d'utilisateurs utilisant un accord privé spécifique entre eux, etc.).


title: UTF-8

text: Une de ces variantes non standards a fait cependant l'objet d'une standardisation ultérieure (en tant qu'alternative à UTF-16 et utilisant des paires de « demi-codets » codés chacun sur 3 octets ; soit en tout au lieu de UTF-8) : voir CESU-8.


title: UTF-8

text: Avec l'UTF-8 normalisé actuel (et aussi le codage UTF-32 normalisé actuel), le codage des « demi-codets » isolés est désormais interdit, comme il l'est aussi avec le codage CESU-8 (où les demi-codets doivent former des paires valides, avec un demi-codet fort codé sur 3 octets obligatoirement suivi d'un demi-codet faible codé sur 3 octets, pour coder les points de code standards des 16 plans supplémentaires hors du plan multilingue de base).


title: UTF-8

text: Le codage CESU-8 standard est donc totalement interopérable avec les codages UTF-8 (même s'il doit obligatoirement être explicitement identifié de façon différente), UTF-16 et UTF-32 des normes et standards actuels de l'ISO/IEC 10646 et d'Unicode.


title: UTF-8

text: Cependant des variantes privées autorisent le codage de demi-codets isolés au sein de bibiothèques spécifiques qui ne tiennent pas compte de la restriction sur leur utilisation en paires conformes au standard CESU-8. De telles extensions d'usage local (ou faisant l'objet d'un accord privé) ne doivent pas être identifiées comme CESU-8 dans les échanges interopérables de textes standards.


title: UTF-8

text: Par exemple, les API d'intégration des machines virtuelles Java (pour JNI, "Java Native Interface" ou pour la sérialisation des classes précompilées), qui permettent d'échanger les chaînes Java non contraintes sous forme de séquences d'octets (afin de les manipuler, utiliser ou produire par du code natif, ou pour le stockage sous forme de fichier natif codés en suites d'octets), sont suffixées par « UTFChars » ou « UTF », mais ce codage propre à Java n'est pas UTF-8 (La documentation de Sun la désigne comme "modified UTF", mais certains documents plus anciens relatifs à JNI désignent encore ce codage incorrectement sous le nom "UTF-8", ce qui a produit des anomalies de comportement de certaines bibliothèques natives JNI, notamment avec les API systèmes d'anciennes plateformes natives qui ne supportent pas nativement les codages de caractères sur plus de ), car :En conséquence :


title: UTF-8

text: Ces traitements peuvent être inefficaces pour l'interfaçage de grosses quantités de texte car ils demandent l'allocation de tampons mémoire supplémentaires pour s'interfacer ensuite dans le code natif avec des interfaces système ou réseau qui n'acceptent que l'UTF-8 standard.


title: UTF-8

text: Cependant JNI fournit aussi une API binaire plus efficace permettant d'utiliser UTF-16 directement, capable de s'interfacer directement avec les protocoles réseau et les interfaces système (par exemple les API Windows) qui supportent l'UTF-16, sans nécessiter aucune allocation mémoire supplémentaire pour le transcodage (seule la vérification de conformité peut être nécessaire, principalement pour vérifier dans le texte codé l'appariement correct des demi-codets ou "surrogate", que Java (comme aussi d'autres langages de programmation) permet de manipuler sans restriction de validité dans ses propres chaînes de caractères non destinées au stockage des seuls textes conformes avec l'UCS). Cette API binaire est supportée sur tous les systèmes où Java a été porté, même ceux dont le système d'exploitation n'offre pas d'API de texte Unicode (la prise en charge pouvant se faire dans l'application native hôte ou en utilisant les bibliothèques standard fournies avec la machine virtuelle Java ou d'autres bibliothèques natives indépendantes.


title: UTF-16

text: UTF-16 est un codage des caractères définis par Unicode où chaque caractère est codé sur une suite de un ou deux mots de 16 bits.


title: UTF-16

text: Le codage était défini dans le rapport technique 17 à la norme Unicode. Depuis, cette annexe est devenue obsolète car UTF-16 fait partie intégrante de la norme Unicode, dans son chapitre 3 "Conformance" qui la définit de façon très stricte.


title: UTF-16

text: L'UTF-16 ne doit pas être confondu avec l'UCS-2 qui est le codage, plus simple, de chaque caractère sur deux octets. Ces deux normes sont pourtant appelées toutes les deux Unicode, car le codage est le même tant que l'on n'utilise pas les plages U+D800 à U+DFFF (en principe réservées) et les plages après U+FFFF (peu utilisées en occident).


title: UTF-16

text: L'UTF-16 est en particulier utilisé dans les environnements Windows. Dans ce système, les API dites Unicode utilisent ce standard. Il en va de même du système NTFS.


title: UTF-16

text: UTF-16 est le standard de chaînes de caractères utilisé par l'UEFI.


title: UTF-16

text: Le numéro de chaque caractère (son point de code) est donné par la norme ISO/CEI 10646, et repris à l'identique par le standard Unicode. Les points de code qui peuvent être représentés doivent être dans l’intervalle de validité U+0000 à U+10FFFF, et ne doivent pas être affectés à un non-caractère. Tous les caractères possibles dans Unicode possèdent de tels points de code.


title: UTF-16

text: Tout point de code qui n’est pas un non-caractère, et dont la valeur peut être codée sur un seul codet de deux octets (16 bits), c’est-à-dire tout point de code U+0000 à U+D7FF et U+E000 à U+FFFD, est stocké sur un seul mot de 16 bits (la plage de non-caractères U+D800 à U+DFFF est donc exclue, c'est-à-dire les points de code dont les 5 bits de poids fort sont 11011).


title: UTF-16

text: Dans les autres cas, le caractère est un point de code d’un plan supplémentaire (donc entre U+10000 et U+10FFFD et dont les 16 bits de poids faible ne doivent pas égaler 0xFFFE ou 0xFFFF) ; il est alors stocké sur 2 mots (codets) successifs de 16 bits chacun, dont les valeurs correspondent aux points de code réservés dans les "demi-zones d’indirection" allouées dans le plan multilingue de base des normes Unicode et ISO/CEI 10646 :


title: UTF-16

text: Puis suivant le format de stockage des mots de 16 bits dans un flux ordonné d’octets, deux systèmes sont possibles pour le codage final :


title: UTF-16

text: L’indication du type de codage utilisé (ordre des octets) peut être implicite pour le protocole utilisé, ou précisé explicitement par ce protocole (en indiquant par exemple les noms réservés "UTF-16BE" ou "UTF-16LE" dans un entête de MIME). Si le protocole ne permet pas de spécifier l’ordre des octets, et s’il permet l’une ou l’autre des alternatives, on pourra utiliser le codage UTF-16 du point de code valide U+FEFF comme indicateur en tête du flux de données (car un changement d’ordre de ses octets à la lecture du flux conduira à un point de code U+FFFE, valide dans Unicode mais affecté à un non-caractère et donc interdit dans ce cas dans tout flux UTF-16. Ce point de code ainsi représenté (appelé indicateur d'ordre des octets, en anglais, abrégé "BOM") ne sera codé qu’au début du flux de données, et permet de savoir comment a été codé le flux :


title: UTF-16

text: Si l’une des deux séquences de deux octets chacune est présente en tête de flux, le type de codage en est déduit et la séquence est retirée du flux : elle ne représente aucun caractère du texte stocké dans ce flux de données. Si aucune des deux séquences ne figure en tête du flux de données, la norme Unicode spécifie que le flux doit être décodé en big endian (UTF-16BE).


title: UTF-16

text: Ailleurs qu’au début du flux (y compris après un "BOM" initial), ces séquences ne sont pas reconnues comme codant un "BOM" et le décodage se poursuit avec un type de codage unique ; donc si ces séquences apparaissent après le début, alors :


title: UTF-16

text: De même le flux doit être considéré comme invalide et ne contenant pas de texte conforme à Unicode s’il contient un mot de 16 bits compris entre 0xD800 et 0xDBFF non immédiatement suivi d’un mot compris entre 0xDC00 et 0xDFFF, ou s’il contient un mot de 16 bits entre 0xDC00 et 0xDFFF non immédiatement précédé d’un mot entre 0xD800 et 0xDBFF, ou si le décodage fait apparaître le point de code de tout autre non-caractère.


L’Union des républiques socialistes soviétiques, par abréviation URSS ou en abrégé Union soviétique (en russe : , ; transcription : "Soïouz Sovietskikh Sotsialistitcheskikh Riespoublik", "SSSR" ; « Union des républiques socialistes des conseils »), était un État fédéral transcontinental à régime communiste. Cette fédération a existé de sa proclamation le à sa dissolution le . La fédération de Russie est l'État continuateur de l'Union soviétique.


title: Union des républiques socialistes soviétiques

text: Étant le plus vaste État du monde, l'URSS occupait un sixième des terres émergées et s'étendait sur onze fuseaux horaires, de la mer Baltique et de la mer Noire à l'océan Pacifique, soit toute la partie nord-est de l'Eurasie. C'était la majeure partie du territoire de l'ancien Empire russe, moins la Pologne et la Finlande indépendantes depuis la guerre civile russe de 1918 à 1921, et s'était augmentée des gains territoriaux de la période stalinienne en Europe orientale et en Asie de l'Est entre 1939 et 1945.


text: Le territoire de l'URSS varia donc dans le temps, surtout durant et à l'issue de la Seconde Guerre mondiale. L'Union était composée de onze, puis quinze républiques fédérées qui sont devenues indépendantes lors de sa dissolution (tout en restant, pour la plupart, liées au sein de la CEI), ainsi que d'un certain nombre de républiques et régions autonomes.


text: La formation de l'URSS fut l'une des conséquences de la révolution russe de 1917. La révolution de Février mit fin au règne des tsars dont Nicolas II fut le dernier représentant, et instaura la République russe qui fut renversée le par les bolcheviks lors de la révolution d'Octobre. L'un des moteurs de la création de l'URSS fut la volonté de Vladimir Ilitch Lénine d'appliquer sa doctrine fédéraliste en transformant la Russie unitaire en une union de républiques formées selon le principe des territoires ethniques jouissant d'un certain degré d'autonomie culturelle locale. Sa conception s'opposait initialement à celle du nationalisme soviétique de Joseph Staline, qui voulait créer une seule "République socialiste fédérative soviétique de Russie". Toutefois, Staline revint ultérieurement sur ses positions et, dans les , procéda lui-même à la création de plusieurs républiques fédérées (dans le Caucase, en Carélie et en Asie centrale).


text: L'URSS était gouvernée par le Parti communiste de l'Union soviétique (PCUS) et tout particulièrement par son bureau exécutif : le "Politburo". Tous les appareils (législatif, exécutif ou judiciaire), ainsi que la presse et la société civile dans son ensemble, étaient directement soumis à l'autorité de ce parti unique et de sa police politique (successivement Tchéka, Guépéou, NKVD, MGB, KGB…), rendant factice l'autonomie constitutionnelle des républiques fédérées et autres entités autonomes, ainsi que celle des soviets et de leur hiérarchie dont le Soviet suprême et de ses deux composantes, le Soviet de l'Union (un député pour ) et le Soviet des nationalités (25 députés pour chaque république soviétique fédérée, 11 pour chaque république autonome, cinq pour chaque oblast autonome et un pour chaque okroug ou raïon autonome).


text: Ces pratiques, analysées dès 1970 par Andreï Amalrik comme une impasse politique, sociale et économique, générant une perte d'espoir et de légitimité, incitèrent le gouvernement soviétique présidé à partir de 1985 par Mikhaïl Gorbatchev, à réformer le système par une politique de "glasnost" (« transparence ») et de "perestroïka" (« restructuration »), mais il était trop tard : le relâchement de l'emprise du parti unique et de la police politique n'aboutit pas à un nouveau départ, mais à la transformation, dans le courant de l', de l'Union soviétique en une « Communauté des états indépendants » (CEI) à géométrie variable, processus appelé « dislocation de l'URSS ».


text: L'ex-RSFS de Russie, devenue fédération de Russie le , est l'état continuateur de l'URSS et a, à ce titre, notamment hérité de son siège de membre permanent au Conseil de sécurité des Nations unies et de ses dettes (qu'elle a fini de payer en 2017).


text: Le mot « soviet » est la transcription du mot russe qui signifie « conseil », aussi bien au sens de l’avis donné à quelqu’un, que d'une assemblée de personnes.


text: Un certain nombre d’organisations dans l’histoire russe ont été dénommées « Conseil » (), comme, dans l’Empire russe, le Conseil d’État, qui fonctionna de 1810 à 1917 et qui devint le Conseil des ministres après la révolution russe de 1905. Dans les langues locales de plusieurs républiques, le mot signifiant « des conseils » fut ultérieurement abandonné au profit du mot russe « soviet » (signe *).


text: Les noms de l’Union soviétique sont donc les suivants dans les langues de ses quinze républiques constitutives :


text: En raison de la longueur de son nom, l'État est couramment appelé « Union soviétique » , ' ou « URSS » , '. Sa « langue de communication interethnique » (язык межнационального общения) était le russe, langue de l'État, et l'alphabet cyrillique était employé pour la plupart des langues de l'Union, de sorte que les médias occidentaux et américains prirent l'habitude de l'appeler improprement « Russie » (et ses citoyens « Russes ») par abus de langage, puisque la Russie n'était que l'une des républiques constitutives (et les Russes, l'une des « nationalités » comptabilisées en URSS).


text: Héritant de la plus grande partie du territoire de l'ancien Empire russe, l'URSS a été le pays le plus étendu du monde (), avec un peuplement des plus variés, comptant plus de cent « nationalités » (ethnies) recensées, une soixantaine de langues et cinq religions. La population totale était estimée à en 1990 (dite peuple soviétique). Aujourd'hui la Russie demeure toujours le pays le plus étendu du monde, toujours très divers culturellement, et administrant des centaines de minorités non-russes. Elle a conservé les frontières ' de la République socialiste fédérative soviétique de Russie telles qu'elles étaient en 1945, à une seule exception près : l'archipel d'îles fluviales de l'Amour, à l'Ouest de Khabarovsk, partagé avec la Chine en 1991. Toutefois, des territoires contrôlés ' par la Russie dans trois des anciennes républiques soviétiques s'y sont ajoutés depuis 1991.


text: Avant la constitution en 1922 de l'Union des républiques socialistes soviétiques, des républiques socialistes soviétiques ont existé "de facto", mais sans former "de jure" une unique fédération, et sans avoir encore obtenu la reconnaissance diplomatique de la communauté internationale. Pendant l’« affaire géorgienne », Vladimir Ilitch Lénine appella les États-nations issus de la dislocation de la République russe à rejoindre la nouvelle Russie soviétique pour former une union plus grande, qu’il envisagea d’appeler Union des Républiques soviétiques d’Europe et d’Asie (en , '). Staline pour sa part proposa le nom d’Union des républiques socialistes soviétiques en 1922, mais il ne fut officiellement adopté qu’en 1924, sous cette forme, bien que jusqu’en 1936 la dénomination des diverses composantes fut celle de « soviétique socialiste » (et non « socialiste soviétique »).


text: Entre une douzaine et une quinzaine de républiques socialistes soviétiques se sont succédé sur les territoires de la première république russe qu’elles ont remplacé après la révolution d'Octobre : leurs intitulés et leur organisation ont varié, certaines se divisant, d’autres se réunissant ; plusieurs n’étaient que des proclamations ne contrôlant pas de territoire :


text: Entre 1922 et 1940, les républiques soviétiques sont cette fois membres "de jure" de l’Union, elle-même pourvue d’une constitution et internationalement reconnue à partir du traité de Rapallo ; elles se sont ainsi constituées :


text: À ces républiques membres de l’Union, s’ajoutaient deux États-satellites, soviétiques "de facto" mais indépendants "de jure" qui furent les deux premiers pays communistes après l’URSS et avant la constitution du « bloc de l'Est » : Grâce à la mise en application du pacte germano-soviétique (en 1939 et en 1940), le territoire de l’Union soviétique s’agrandit sans combats de aux dépens des pays baltes (), de la Pologne () et de la Roumanie (), avançant la frontière soviétique vers l’Ouest de en moyenne, agrandissant les républiques socialistes soviétiques de Biélorussie et d’Ukraine, et intégrant quatre nouvelles républiques : l’Estonie, la Lettonie, la Lituanie et la Moldavie.


text: En 1941, l’offensive allemande contre l’URSS remet pour quatre ans en question l’organisation territoriale de 1939 : les occupants mettent en place leur propre administration avec les « Commissariats du Reich » des « Pays de l’Est » regroupant les pays baltes et la Biélorussie, et « d’Ukraine », auxquels s’ajoutent à l’Est une vaste zone sous administration militaire directe en Russie occidentale, et au Sud une petite zone d’occupation roumaine en Podolie. Ces structures disparaissent en 1944 à mesure que les contre-offensives de l’Armée rouge permettent au gouvernement soviétique de reprendre le contrôle de ces territoires. L’organisation de 1939-1940 est alors rétablie jusqu’en 1954 lorsque certains changements sont opérés : par exemple, la République socialiste soviétique carélo-finnoise est réintégrée à celle de Russie, qui de son côté cède la Crimée à la République socialiste soviétique d'Ukraine.


text: Entre 1954 et 1991, l’Union soviétique compta quinze républiques socialistes soviétiques (RSS) : Chaque république fédérée était organisée en « régions » ("oblasts") à leur tour divisées en « arrondissements » ("rayons"), sauf les cinq petites RSS d’Estonie, Lettonie, Lituanie, Moldavie et Arménie qui étaient directement divisées en "rayons". La RSFS de Russie disposait, en plus, de « confins » ("kraïs"). Certains des oblasts et des kraïs comptaient des districts ou des arrondissements autonomes. Certaines républiques fédérées (Russie, Géorgie, Azerbaïdjan, Ouzbékistan et Tadjikistan) avaient aussi dans leur structure des républiques autonomes. Les républiques musulmanes d'Asie centrale étaient des créations artificielles de Staline, qui ont été découpées sans tenir compte des réalités géographiques ou ethniques.


text: La Communauté des États indépendants (CEI), créée en , est une entité intergouvernementale composée de dix anciennes républiques soviétiques. Conformément à ses instruments constitutifs, les accords de Minsk et d'Alma-Ata, la CEI est dépourvue de personnalité juridique internationale. Pour cette raison, la communauté des anciennes républiques soviétiques n'est pas une organisation internationale. Ses membres sont les suivants : l'Arménie, l'Azerbaïdjan, la Biélorussie, le Kazakhstan, le Kirghizistan, la Moldavie, l'Ouzbékistan, la Russie, le Tadjikistan et le Turkménistan qui dispose du statut d'état associé. La Géorgie quitta la communauté à la suite des événements en Ossétie du Sud de 2008. L'Ukraine met fin à sa participation à la CEI en 2018. Au début des , les réformes de la CEI contribuent à créer l'Organisation du traité de sécurité collective (OTSC) et la Communauté économique eurasiatique ("Eurasec").


text: L'Union eurasiatique (ou Union eurasienne) est une organisation supranationale fondée sur le modèle de l'Union européenne et du traité de Maastricht de 1992. Elle est effective depuis le . Englobant une union douanière et économique, elle intègre (en 2020) la Russie, la Biélorussie, le Kazakhstan, l'Arménie, le Kirghizistan et pourrait s'étendre au Tadjikistan. Proche du projet de l'Union des républiques souveraines imaginé par Gorbatchev en 1991, bon nombre d'observateurs, en particulier les États-Unis, mettent en garde la Russie face à une refondation de l'Union soviétique sous une nouvelle forme.


text: L'Union de la Russie et de la Biélorussie est une union politico-économique de type confédéral entre les deux pays slaves (Russie et Biélorussie). La Serbie, l'Abkhazie, et l'Ossétie du Sud y ont un rôle d'observateur. C'est une des unions postsoviétiques les plus avancées.


text: Si la Fédération de Russie est le continuateur de l'Union soviétique et si l'indépendance des 14 autres anciennes républiques socialistes soviétiques a été reconnue internationalement, huit autres États issus de la dislocation de l'URSS n'ont pas été reconnus par la communauté internationale (ou seulement partiellement). Deux d'entre eux, situés en Russie, ont été remis par celle-ci dans le rang de ses républiques fédérales : il s'agit du Tatarstan et de la Tchétchénie. Six autres, situés hors de Russie, ont en revanche été soutenus par celle-ci et, pour quatre d’entre eux (signe *), officiellement reconnus par elle : l'Abkhazie*, la République populaire de Donetsk*, le Haut-Karabagh, la République populaire de Lougansk*, l'Ossétie du Sud-Alanie* et la Transnistrie. En outre, la République de Crimée qui est selon le droit international une entité autonome de l'Ukraine, est considérée par la Russie comme l'une de ses républiques fédérales, ce qu'elle est "de facto".


text: Dès le , la Russie tsariste connaît une agitation révolutionnaire qui s'aggrave après une révolution réprimée en 1905 et la défaite russe lors de la guerre russo-japonaise. Le mécontentement populaire culmine à la suite des pénuries causées par la Première Guerre mondiale et aboutit à la chute du gouvernement impérial et à l'abdication de en lors de la révolution de Février.


text: Le nouveau gouvernement de coalition démocrate de la nouvelle république russe veut respecter, vis-à-vis des Alliés, l'engagement de la Russie dans la guerre. Mais cet effort est largement refusé par une armée et un pays exsangues : le gouvernement d'Alexandre Kerenski perd ses appuis dans la population et la classe ouvrière tandis qu'à , un vaste soulèvement paysan spontané procède de lui-même au partage des terres. De leur côté, les forces réactionnaires, regroupées autour du général Lavr Kornilov, tentent vainement un coup d'État (« affaire Kornilov »). L'État perd progressivement son autorité sur le pays et l'armée se débande.


text: Le Parti bolchevique, parti révolutionnaire marxiste mené par Vladimir Ilitch Lénine, devient progressivement majoritaire parmi les socialistes dans les conseils politiques ouvriers et paysans dits « soviets ». Le (selon l'ancien calendrier julien) ou le , il renverse le gouvernement provisoire par un coup d'État dit « révolution d'Octobre ». Le slogan de la révolution qui emporte l'adhésion des masses populaires est simple et percutant : , ce qui signifie nationalisations et armistice.


text: Ainsi, la jeune république bolchevique décide de se sortir de la Première Guerre mondiale en concluant une paix séparée avec l'Empire allemand, qui a facilité le voyage de Lénine de la Suisse vers la Russie. Un armistice signé en aboutit au traité de Brest-Litovsk en par lequel la Russie laisse l'Empire allemand occuper et exploiter 3,6 % de son territoire, 26 % de sa population, 32 % de sa production agricole, 23 % de sa production industrielle et 75 % de ses réserves de charbon. Le territoire occupé comprend l'Ukraine, la Biélorussie, les pays baltes et la Pologne que, de toute manière, les bolchéviks ne contrôlaient pas, mais qu'ils récupéreront après la défaite allemande de , au terme de la guerre civile russe, sauf les pays baltes, la Pologne et la Bessarabie (Moldavie) que l'URSS occupera en 1940, sans guerre, grâce au pacte germano-soviétique.


text: L'État soviétique supprime (nationalise) la propriété privée industrielle ou immobilière, les commerces et les banques. À la place, une propriété d'État est instaurée sur la quasi-totalité des moyens de production, sauf agricoles. Le marché libre disparaît et l'État acquiert le monopole du commerce intérieur et extérieur, du logement, des transports, de la distribution d'eau et d'énergie. Cette tendance au capitalisme d'État est néanmoins critiquée par des communistes comme Nikolaï Ossinski.


text: Lénine annule également les engagements russes sur les emprunts obligataires qui avaient été contractés par le gouvernement tsariste dans le but d’industrialiser le pays, développer les voies ferrées et financer la guerre. La jeune RSFS de Russie créée par la Constitution de 1918 fonctionne selon un principe fédéral, dont le principe de gouvernance est le « centralisme démocratique », une définition "de jure" de ce qui est "de facto" une dictature du parti unique au nom de la . Le pouvoir législatif est théoriquement exercé par le « congrès panrusse des Soviets », lequel mandate le « Comité exécutif central panrusse », tant en matière législative qu'exécutive. Il appartient ainsi au Comité exécutif de contrôler le « Conseil des commissaires du peuple », lequel, avec Lénine à sa tête, a la charge de gouverner la RSFS de Russie. Cette apparence de démocratie ne résiste pas à une analyse plus poussée : noyauté et contrôlé totalement par les bolcheviks, le congrès des Soviets, son Comité exécutif et donc le Conseil des commissaires du peuple, sont aux mains de Lénine et de ses camarades, et en particulier du Politburo du PCUS.


text: Ensuite, le pouvoir d'État devient bien plus arbitraire en raison de la guerre civile, combinée à l'intervention ouverte des États occidentaux, qui fait rage jusqu'en 1921.


text: Pour faire face aux forces d'opposition pendant la guerre civile russe, soutenues par divers pays étrangers (Allemagne, Angleterre, France, Japon, États-Unis), le gouvernement bolchévik décrète le , dont les mesures essentielles sont :


text: Grâce au « communisme de guerre », Lénine et le parti bolchevik parviennent à se maintenir au pouvoir face aux forces réactionnaires, aux interventionnistes étrangers, à l'armée anarchiste de Makhno (Makhnovchtchina) qui tient le sud de l'Ukraine, et aux « armées vertes » créées par les paysans en révolte à la fois contre les Blancs et les bolcheviks. Grâce à la division et à l'absence de coordination entre leurs ennemis, les bolchéviks sortent vainqueurs de la guerre civile, et le danger d'une restauration monarchique ou républicaine démocratique est écarté. Mais les difficultés intérieures ne cessent pas : le , l'Armée rouge réprime dans le sang la révolte de Kronstadt, dont les marins avaient exigé le retour au « pouvoir des soviets » et la fin du monopole bolchevique.


text: Sur le plan territorial, la Russie bolchevique perd les pays baltes, la Finlande, la Pologne (qui sauvegarde son indépendance à l'issue de la guerre soviéto-polonaise) et la Moldavie (qui s'unit à la Roumanie). Mais après des luttes confuses, et entre 1920 et 1922, les bolchéviks intègrent l'Ukraine (qui avait elle aussi proclamé son indépendance), la Géorgie, l'Arménie et l'Asie centrale, reprises de force dans le giron russe.


text: La guerre civile, l'embargo des puissances occidentales sur la Russie soviétique et la politique d’expropriation de biens des paysans afin de nourrir les soldats de l'Armée rouge conduisent à une grande famine provoquant la mort de millions de Russes, surtout dans le bassin de la Volga en 1921-1922.


text: L'Union des républiques socialistes soviétiques fut proclamée le , date de la signature du traité d'union (à la suite d'une déclaration préalable) entre la RSFS de Russie, la RSFS de Transcaucasie, la RSS d'Ukraine et la RSS de Biélorussie. Ce traité est ratifié le par le premier congrès des Soviets d'URSS.


text: Cette nouvelle entité, même si elle a perdu des territoires en comparaison de l'Empire russe, reste le plus vaste état du monde et n'est pas encore internationalement reconnue.


text: Une constitution fut rédigée en 1923 ; l'union regroupa plusieurs républiques fédérées dont les frontières furent constituées selon une répartition démographique correspondant à un "peuple" dans sa définition soviétique. L'URSS fut donc un État fédéral dans lequel chaque république était, en théorie, égale en droits aux autres. Dans les faits, le PCUS (et au début le RSDRP) et la Tchéka surveillent étroitement ces républiques dont les premiers secrétaires du Parti furent désignés par Moscou.


text: Le PCUS devint rapidement le seul parti du pays. Théoriquement le pays était gouverné par des « Soviets » démocratiquement élus au niveau régional et local mais en pratique, le pouvoir du "Politburo" est absolu et chaque niveau décisionnel applique les directives transmises par le niveau supérieur, sous la surveillance de la police politique.


text: Après la guerre civile (1921), le pays se trouve dans une situation humanitaire et économique désastreuse. La famine fait cinq millions de morts dans le bassin de la Volga, et les paysans se soulèvent sporadiquement contre les réquisitions. Ce mécontentement prend une ampleur inquiétante en avec la révolte de Kronstadt, ville pionnière de la révolution, abritant l'amirauté et les forces navales de la mer Baltique défendant Pétrograd. Conscient que la répression, aussi dure soit-elle, ne suffit pas à enrayer le mouvement, Lénine décida d'assouplir la politique du régime, et mit en œuvre la « Nouvelle politique économique » (NEP), libéralisation économique donnant droit à une production privée limitée, notamment aux agriculteurs. Les réquisitions sont ainsi remplacées par un impôt en nature peu élevé.


text: Pour expliquer le passage à la NEP, Lénine déclare que , se référant au fait que la Russie était encore une société essentiellement agraire avec une base industrielle insuffisante, ne remplissant pas les critères permettant le passage au socialisme tel que défini par Karl Marx. La NEP devait aussi rassurer les pays occidentaux capitalistes.


text: La NEP atteint les résultats escomptés en permettant à l'économie de se relever des conséquences désastreuses de la guerre. La famine rampante disparaît virtuellement et la classe paysanne retrouve son auto-suffisance ; certains paysans parviennent même à produire des surplus et à alimenter les villes : ils sont appelés koulaks tandis que dans les agglomérations, les artisans et commerçants autonomes sont appelés "nepmen" : les deux catégories sont, aux yeux de la police politique et d'une frange importante du Parti bolchevique, suspectes de former une nouvelle « classe de parasites », une nouvelle aristocratie rurale, une nouvelle bourgoisie riche. Ces critiques voient la NEP comme une « trahison des principes socialistes » et veulent un retour rapide à une économie intégralement contrôlée et planifiée par le Parti.


text: Il semble qu'à sa mort, Lénine considérait que la NEP devrait être maintenue, tout du moins n'a-t-il jamais fixé, ni même évoqué, la date de son arrêt. Ainsi, à l'approche de sa succession, les oppositions au sein du Politburo se cristallisèrent autour de la NEP.


text: Dès 1922, la santé de Lénine décline à la suite d'attaques cérébrales, conséquences d'un attentat dont il fut victime en 1918. La lutte pour sa succession aboutira à l'accession au pouvoir suprême de Joseph Staline, ayant appartenu au premier cercle d'adhérents au Parti (entrée en 1904), bien que Lénine ne l'appréciait plus beaucoup, déclarant même dans son testament () qu'il fallait démettre de ses fonctions cet homme .