String.fromCharCode()
La méthode statique String.fromCharCode()
renvoie une chaîne de caractères créée à partir de points de code UTF-16.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Syntaxe
String.fromCharCode(num1, ..., numN)
Paramètres
num1, ..., numN
- Une séquence de nombres représentant des points de code UTF-16 entre 0 et 65535 (
0xFFFF
). Les nombres supérieurs à0xFFFF
sont tronqués.
Valeur de retour
Une chaîne de caractères qui contient les caractères correspondants à la série de points de code UTF-16.
Description
Cette méthode renvoie une chaîne de caractère et non un objet String
.
La méthode fromCharCode()
étant une méthode statique de l'objet String
, elle doit toujours être utilisée avec la syntaxe String.fromCharCode()
plutôt qu'en appelant la méthode à partir d'un objet String
construit sur mesure.
Exemples
Pour les caractères du plan multilingue de base, UTF-16 utilise une seule unité de code :
String.fromCharCode(65,66,67); // ABC
String.fromCharCode(0x2014); // "—"
String.fromCharCode(0x12014); // "—" également, le 1 a été tronqué
String.fromCharCode(8212); // renvoie également "—" car 8212
// est la forme décimale
Les caractères hors de ce plan utilisent deux unités de code (on parle de surrogate pair) :
String.fromCharCode(0xD83C, 0xDF03); // Point de code U+1F303 pour l'émoji nuit étoilée
// Forme décimale équivalente :
String.fromCharCode(55356, 57091);
String.fromCharCode(0xD834, 0xDF06, 0x61, 0xD834, 0xDF07);
// "\uD834\uDF06a\uD834\uDF07"
Utiliser des valeurs Unicode plus grandes
En UTF-16, les caractères les plus communs sont représentables sur une seule valeur de 16 bits. Toutefois, cet ensemble de caractères (aussi appelé plan multilingue de base ou BMP en anglais) ne représente qu'1/17e de l'espace total représenté par les caractères Unicode. Le reste des points de code, sur l'intervalle 65536 (0x010000) à 1114111 (0x10FFFF) sont des caractères additionnels qui sont représentés par deux valeurs sur 16 bits qu'on appelle surrogate pairs en anglais.
La méthode fromCharCode()
ne fonctionne qu'avec des valeurs sur 16 bits et il faudra donc fournir une paire de codets pour obtenir certains caractères. Ainsi, String.fromCharCode(0xD83C, 0xDF03)
renvoie le point de code U+1F303 qui représente l'émoji « nuit étoilée ».
Bien qu'il y ait une relation mathématique entre la valeur composée et les deux codets qui forment la paire, on a besoin d'une étape supplémentaire à chaque fois. Aussi, il sera plus pratique d'utiliser String.fromCodePoint()
(ES2015 / ES6) qui permet de manipuler les codes des caractères hors BMP : on pourra ainsi écrire String.fromCodePoint(0x1F303)
pour renvoyer le caractère U+1F303 (émoji « nuit étoilée »).
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Définition initiale. Implémentée avec JavaScript 1.2. |
ECMAScript 5.1 (ECMA-262) La définition de 'StringfromCharCode' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'String.fromCharCode' dans cette spécification. |
Standard | |
ECMAScript (ECMA-262) La définition de 'String.fromCharCode' dans cette spécification. |
Standard évolutif |
Compatibilité des navigateurs
BCD tables only load in the browser
Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une pull request sur https://github.com/mdn/browser-compat-data.