web-dev-qa-db-fra.com

Comment inverser String.fromCharCode?

String.fromCharCode (72) donne H. Comment obtenir le numéro 72 du caractère H?

50
IAdapter
'H'.charCodeAt(0)
57
Silvio Donnini

Utilisez charCodeAt:

var str = 'H';
var charcode = str.charCodeAt(0);
9
Tatu Ulmanen

La réponse de @ Silvio n'est vraie que pour les points de code jusqu'à 0xFFFF (qui à la fin est le maximum que String.fromCharCode peut produire). Vous ne pouvez pas toujours supposer que la longueur d'un caractère est de un:

'????'.length
-> 2

Voici quelque chose qui fonctionne:

var utf16ToDig = function(s) {
    var length = s.length;
    var index = -1;
    var result = "";
    var hex;
    while (++index < length) {
        hex = s.charCodeAt(index).toString(16).toUpperCase();
        result += ('0000' + hex).slice(-4);
    }
    return parseInt(result, 16);
}

En l'utilisant:

utf16ToDig('????').toString(16)
-> "d800df30"

(Inspiration de https://mothereff.in/utf-8 )

7
theicfire

Vous pouvez définir vos propres fonctions globales comme ceci:

function CHR(ord)
{
    return String.fromCharCode(ord);
}

function ORD(chr)
{
    return chr.charCodeAt(0);
}

Ensuite, utilisez-les comme ceci:

var mySTR = CHR(72);

ou

var myNUM = ORD('H');

(Si vous souhaitez les utiliser plus d'une fois, et/ou beaucoup dans votre code.)

7
David Refoua