Unicode et la norme ISO/CEI 10646 vise à donner à tout caractère un identifiant numérique unique, et ce de manière unifiée, quelle que soit la plate-forme informatique ou le logiciel.
Unicode et la norme ISO/CEI 10646 attribuent à chaque caractère un nom officiel au sein d’un répertoire commun unifié entre toutes les langues et tous les usages. Dès que le répertoire commun est approuvé, les caractères sont groupés en blocs en fonction de leur usage et des écritures supportées, et reçoivent une identification numérique unique appelée "point de code", identifiée généralement sous la forme U+xxxx (où xxxx est un nombre hexadécimal de 4 à 6 chiffres, entre U+0000 et U+10FFFF). La plage définie permet d'attribuer jusqu'à .
Plans et blocs.
Unicode ayant été construit par blocs, ces blocs forment un partitionnement du jeu de caractères.
En soi, la connaissance de ce partitionnement n'a pas une grande utilité, il est donné dans l'annexe /Plans/ à titre purement informatif, pour donner une idée de l'étendue de l'Unicode.
En fait, le jeu de caractères (en fait le jeu de point de codes) Unicode est découpé en plans eux-même découpés en blocs. Les plans contiennent un multiple de 65536 points de code et sont les suivants :
Caractères non graphiques, codes réservés et non affectés.
Le standard Unicode a hérité des caractères de commande utilisés par certains protocoles ainsi que par l'ISO-2022 et par l'ASCII. Ces caractères ne sont pas des caractères affichables. Le standard leur attribue une valeur similaire à ce que faisaient les standards précédents. La signification de chacun de ces codes peut dépendre du terminal ou du protocole utilisé.
Les points de code non caractères spéciaux correspondent à des valeurs dont l'utilisation est interdite par le standard.
Le marqueur BOM est un marqueur qui peut se trouver en début d'un fichier ou d'un flux Unicode.
Les caractères de présentation ne sont pas affichables mais permettent de contrôler les fonctions de joignage, le contrôle des textes bidirectionnels, et de formats alternatifs.
Le caractère de remplacement est un caractère qui indique un caractère inconnu d'Unicode.
Il existe également des caractères combinatoires, notamment pour les diacritiques.
Caractères combinatoires.
Unicode reprend le concept usuel de combinaison : par exemple le Ȧ se produit en partant de la lettre A sur laquelle on superpose une diacritique. En langage Unicode, U+0041 et U+030A sont des formes encodées. A et Ȧ Å avant d'être affichés sont des abstractions. Elles peuvent être codées grâce à cette combinaison : U+0041 et U+030A, même si dans ce cas de figure elles peuvent aussi être obtenues par les codes U+00C5 ou U+212B. Toutefois, les significations sont les suivantes :

À la découverte d'Unicode/Programmation
Si ce livre veut s'adresser à un lectorat néophyte, cette section s'adresse plus particulièrement à toutes les personnes qui travaillent dans les métiers liés au développement logiciel.
Bibliothèques logicielles.
ICU.
La bibliothèque logicielle multi plate-forme ICU permet de manipuler des données unicodées.
Elle est en particulier utilisée à partir de LibreOffice 4.0.
Dans les langages de programmation.
Un support d’Unicode spécifique à certaines plates-formes (non compatible quant au code-source) est également fourni par les systèmes modernes (Java, MFC, GNU/Linux).
Le support d'Unicode dépend du type de données utilisé et des fonctions appelées.
Actuellement (2020) un point de code Unicode peut aller de 0 à 1114111 (10FFFF en hexadécimal).
La taille du type pour un caractère détermine l'encodage Unicode utilisé :
Les types à utiliser pour stocker des caractères Unicode sur 32 bits, sont les suivants :
Notes du tableau alpha
Autres bibliothèques.
La bibliothèque Qt permet aussi de gérer Unicode.
Le cas de Linux.
Dans le cas de Linux, le développement en langage C peut se faire avec des interfaces spécifiques, en 2001.
Expressions rationnelles.
Unicode souffre toutefois encore d’un faible support des 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).