unicode(7) Miscellaneous Information Manual unicode(7)

Unicode - Jeu de caractères universel

The international standard ISO/IEC 10646 defines the Universal Character Set (UCS). UCS contains all characters of all other character set standards. It also guarantees "round-trip compatibility"; in other words, conversion tables can be built such that no information is lost when a string is converted from any other encoding to UCS and back.

UCS contient les caractères nécessaires pour représenter presque toutes les langues connues. Il inclut non seulement les alphabets latin, grec, cyrillique, hébreu, arabe, arménien et géorgien, mais également les idéogrammes chinois, japonais, sino-coréens et les écritures : hiragana, katakana, hangûl, dévanâgarî, bengali, gourmoukhî, goudjarati, oriya, tamoul, télougou, kannara, malayalam, thaï, laotien, khmer, bopomofo, tibétain, runes, éthiopien, syllabaires canadiens, chérokî, mongol, ogam, birman, cingalais, thâna, yi, et d'autres. Pour les écritures qui n'ont pas encore été intégrées, des recherches sont en cours pour optimiser l’encodage et elles seront probablement ajoutées. Cela inclut non seulement des hiéroglyphes et des langues indo-européennes historiques, mais aussi des écritures artistiques comme les tengwar de Fëanor, les cirth ou le klingon. UCS contient également un grand nombre de symboles graphiques, typographiques, mathématiques et scientifiques comme ceux fournis par TeX, PostScript, APL, MS-DOS, MS-Windows, Macintosh, les polices OCR et par de nombreux traitements de texte et systèmes d'édition, et de plus en plus sont ajoutés.

The UCS standard (ISO/IEC 10646) describes a 31-bit character set architecture consisting of 128 24-bit groups, each divided into 256 16-bit planes made up of 256 8-bit rows with 256 column positions, one for each character. Part 1 of the standard (ISO/IEC 10646-1) defines the first 65534 code positions (0x0000 to 0xfffd), which form the Basic Multilingual Plane (BMP), that is plane 0 in group 0. Part 2 of the standard (ISO/IEC 10646-2) adds characters to group 0 outside the BMP in several supplementary planes in the range 0x10000 to 0x10ffff. There are no plans to add characters beyond 0x10ffff to the standard, therefore of the entire code space, only a small fraction of group 0 will ever be actually used in the foreseeable future. The BMP contains all characters found in the commonly used other character sets. The supplemental planes added by ISO/IEC 10646-2 cover only more exotic characters for special scientific, dictionary printing, publishing industry, higher-level protocol and enthusiast needs.

La représentation des caractères UCS sur des mots de 2 octets est appelée UCS-2 (seulement pour les caractères du BMP), alors que UCS-4 est la représentation des caractères par un mot de 4 octets. De plus, il existe deux formes d’encodage : UTF-8 pour la rétrocompatibilité avec les logiciels traitant l'ASCII et UTF-16 pour la gestion rétrocompatible des caractères non PMB jusqu'à 0x10ffff par des logiciels UCS-2.

Les caractères UCS 0x0000 à 0x007f sont identiques à ceux du jeu classique US-ASCII, et ceux de l'intervalle 0x0000 à 0x00ff sont identiques à ceux du jeu de caractères ISO 8859-1 (latin-1).

Quelques codes de l'UCS ont été assignés à des caractères composés. Ils sont semblables aux touches mortes d'accents sur les machines à écrire. Un caractère composé ajoute simplement un accent sur le caractère précédent. Les caractères accentués les plus importants ont leur propre code dans l'UCS. Cependant, le mécanisme des caractères composés permet d'ajouter des accents ou des signes diacritiques sur n'importe quel caractère de base. Les caractères composés suivent toujours le caractère qu'ils modifient. Par exemple, le caractère « À » (lettre majuscule latine A accent grave) peut être représenté soit par le code UCS précomposé 0x00C0, soit par la combinaison d'un A majuscule normal, suivi d'un « diacritique accent grave », 0x0041 0x0308.

Les caractères composés sont essentiels par exemple pour l’encodage de l'écriture thaïe ou pour les notations mathématiques et l'alphabet phonétique international.

As not all systems are expected to support advanced mechanisms like combining characters, ISO/IEC 10646-1 specifies the following three implementation levels of UCS:

Les caractères composés et les caractères jamos hangûl (un encodage spécial de l'écriture coréenne, où les glyphes de syllabes hangûl sont encodés par 2 ou 3 codes de voyelle ou consonne) ne sont pas pris en charge.
Outre le niveau 1, les caractères composés sont maintenant permis pour certaines langues où ils sont essentiels (par exemple, le thaï, le laotien, l'hébreu, l'arabe, le dévanâgarî ou le malayalam).
Tous les caractères UCS sont gérés.

The Unicode 3.0 Standard published by the Unicode Consortium contains exactly the UCS Basic Multilingual Plane at implementation level 3, as described in ISO/IEC 10646-1:2000. Unicode 3.1 added the supplemental planes of ISO/IEC 10646-2. The Unicode standard and technical reports published by the Unicode Consortium provide much additional information on the semantics and recommended usages of various characters. They provide guidelines and algorithms for editing, sorting, comparing, normalizing, converting, and displaying Unicode strings.

Sous GNU/Linux, le type C wchar_t est un entier 32 bits signé, et sa valeur est toujours interprétée par la bibliothèque C comme un code UCS (dans tous les paramètres régionaux), une convention signalée par la bibliothèque C de GNU pour les applications en définissant la constante __STDC_ISO_10646__ comme indiquée dans la norme ISO C99.

L'UCS/Unicode peut être employé comme l'ASCII dans les flux d'entrée-sortie, les communications avec les terminaux, les fichiers textes, les noms de fichier et les variables d'environnement dans un encodage multioctet UTF-8 compatible ASCII. Pour signaler l'utilisation de l'UTF-8 comme encodage pour toutes les applications, des paramètres régionaux (locale) adéquats doivent être configurés dans les variables d'environnement (par exemple, « LANG=fr_FR.UTF-8 »).

The nl_langinfo(CODESET) function returns the name of the selected encoding. Library functions such as wctomb(3) and mbsrtowcs(3) can be used to transform the internal wchar_t characters and strings into the system character encoding and back and wcwidth(3) tells how many positions (0–2) the cursor is advanced by the output of a character.

L'intervalle entre 0xe000 et 0xf8ff du plan multilingue de base (« Basic Multilingual Plane ») ne sera jamais assigné a aucun caractère par la norme et est réservé pour une utilisation privée. Pour la communauté Linux, cette zone privée a été divisée en deux. L'intervalle entre 0xe000 et 0xefff peut être utilisé individuellement par n'importe quel utilisateur final. L'intervalle s'étendant de 0xf000 à 0xf8ff est réservé à Linux et les extensions y sont coordonnées entre les divers utilisateurs de Linux. L'enregistrement des caractères assignés à la zone Linux est maintenu par LANANA et le registre lui-même est disponible dans les sources du noyau Linux sous Documentation/admin-guide/unicode.rst (ou Documentation/unicode.txt avant Linux 4.10).

Deux autres plans sont réservés à un usage privé. Le plan 15 (zone d'utilisation privée supplémentaire PUA-A, intervalle 0xf0000-0xffffd) et le plan 16 (zone d'utilisation privée PUA-B, intervalle 0x100000-0x10fffd).

-
Information technology — Universal Multiple-Octet Coded Character Set (UCS) — Part 1: Architecture and Basic Multilingual Plane. International Standard ISO/IEC 10646-1, International Organization for Standardization, Geneva, 2000.
Il s'agit des spécifications officielles de l'UCS. Disponible sur http://www.iso.ch/.
  • The Unicode Standard, Version 3.0. The Unicode Consortium, Addison-Wesley, Reading, MA, 2000, ISBN 0-201-61633-5.
  • S. Harbison, G. Steele. C : A Reference Manual. Quatrième edition, Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.
Un bon livre de référence sur le langage de programmation C. La quatrième édition couvre maintenant l'amendement 1 de 1994 à la norme ISO C90, qui ajoute un grand nombre de fonctions de bibliothèque C pour manipuler les jeux de caractères larges et multioctets, mais ne couvre pas encore l'ISO C99, qui améliore encore plus la gestion des caractères larges et multioctets.
-
Unicode Technical Reports.
-
Markus Kuhn : UTF-8 and Unicode FAQ for UNIX/Linux.
-
Bruno Haible : Unicode HOWTO.

locale(1), setlocale(3), charsets(7), utf-8(7)

La traduction française de cette page de manuel a été créée par Christophe Blaess https://www.blaess.fr/christophe/, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Grégoire Scano <gregoire.scano@malloc.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

12 mars 2023 Pages du manuel de Linux 6.05.01