web-dev-qa-db-fra.com

Quel est un moyen simple d'appeler Asc () et Chr () en JavaScript pour les valeurs Unicode?

Je ne suis pas très familier avec Javascript et je recherche la fonction qui renvoie la valeur UNICODE d'un caractère et, étant donné la valeur UNICODE, renvoie l'équivalent de la chaîne. Je suis sûr qu'il y a quelque chose de simple, mais je ne le vois pas.

Exemple:

  • ASC ("A") = 65
  • CHR (65) = "A"
  • ASC ("ਔ") = 2580
  • CHR (2580) = "ਔ"
42
Noah

Jettes un coup d'oeil à:

String.fromCharCode(64)

et

String.charCodeAt(0)

Le premier doit être appelé sur la chaîne classe (littéralement String.fromCharCode...) et renverra "@" (pour 64). La seconde doit être exécutée sur une chaîne instance (par exemple, "@@@".charCodeAt...) et renvoie le code Unicode du premier caractère (le "0" est une position dans la chaîne, vous pouvez obtenir les codes des autres caractères de la chaîne en le changeant en un autre nombre).

L'extrait de script:

document.write("Unicode for character ਔ is: " + "ਔ".charCodeAt(0) + "<br />");
document.write("Character 2580 is " + String.fromCharCode(2580) + "<br />");

donne:

 Unicode pour le caractère ਔ est: 2580 
 Le caractère 2580 est ਔ 
68
paxdiablo

Parce que JavaScript utilise UCS-2 en interne , String.fromCharCode(codePoint) ne fonctionnera pas pour les caractères Unicode supplémentaires. Si codePoint est 119558 (0x1D306, pour le '????' caractère), par exemple.

Si vous souhaitez créer une chaîne basée sur un point de code Unicode non BMP, vous pouvez utiliser les fonctions utilitaires de Punycode.js pour convertir entre les chaînes UCS-2 et les points de code UTF-16:

// `String.fromCharCode` replacement that doesn’t make you enter the surrogate halves separately
punycode.ucs2.encode([0x1d306]); // '????'
punycode.ucs2.encode([119558]); // '????'
punycode.ucs2.encode([97, 98, 99]); // 'abc'

si vous souhaitez obtenir le point de code Unicode pour chaque caractère d'une chaîne, vous devrez convertir la chaîne UCS-2 en un tableau de points de code UTF-16 (où chaque paire de substitution forme un seul point de code). Vous pouvez utiliser les fonctions utilitaires de Punycode.js pour cela:

punycode.ucs2.decode('abc'); // [97, 98, 99]
punycode.ucs2.decode('????'); // [119558]
5
Mathias Bynens

Exemple pour générer un tableau alphabétique ici:

const arr = [];
for(var i = 0; i< 20; i++) {
    arr.Push( String.fromCharCode('A'.charCodeAt(0) + i) )
}
1
user3479125