Dans 4D, le langage ainsi que le moteur de la base de données stockent et manipulent nativement les caractères en Unicode. Ce principe facilite l’internationalisation des applications 4D. L’Unicode est un jeu de caractères standard unifié qui gère pratiquement toutes les langues usuelles de la planète. Un jeu de caractères est une table de correspondance caractère/valeur numérique, par exemple “a”->1, “b”->2, “5”->15, “oe”->662, etc. Alors qu’en ASCII la valeur numérique de base est typiquement comprise entre 1 et 127, en Unicode la borne haute va au-delà de 65000, ce qui permet de représenter quasiment tous les caractères de toutes les langues.
Il existe différentes manières de coder les valeurs numériques Unicode : UTF-16 les code sur des entiers de 16-bits, UTF-32 sur des entiers de 32-bits et UTF-8 sur des entiers de 8-bits. 4D utilise principalement UTF-16 (comme Windows et macOS). Parfois, essentiellement pour des besoins liés au Web, 4D utilise UTF-8 qui a l’avantage de la compacité et de la lisibilité pour les caractères usuels (a-z,0-9).
Note : En interne, 4D utilise l'encodage UTF-16 pour stocker le texte dans les champs et les variables. Sauf mention particulière, les caractères, positions ou longueurs de chaînes manipulés via le langage se réfèrent toujours à des valeurs en UTF-16.
Pour plus d'informations sur la norme Unicode, reportez-vous par exemple à la page suivante :
http://fr.wikipedia.org/wiki/Unicode
Une liste de codes Unicode (page en anglais) :
http://en.wikipedia.org/wiki/List_of_Unicode_characters
Attention : En unicode dans 4D v11, les codes de caractères suivants sont réservés et ne doivent jamais être inclus dans un texte :
0
65534 (FFFE)
65535 (FFFF)