如何反转String.fromCharCode?

IAd*_*ter 47 javascript reverse char

String.fromCharCode(72)给出H.如何从char H获得数字72?

Tat*_*nen 9

使用charCodeAt:

var str = 'H';
var charcode = str.charCodeAt(0);
Run Code Online (Sandbox Code Playgroud)


Dav*_*oua 7

您可以像这样定义自己的全局函数:

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

function ORD(chr)
{
    return chr.charCodeAt(0);
}
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它们:

var mySTR = CHR(72);
Run Code Online (Sandbox Code Playgroud)

要么

var myNUM = ORD('H');
Run Code Online (Sandbox Code Playgroud)

(如果您想在代码中多次使用它们,或者/或者在代码中使用它们很多.)

  • 请不要**再使用我的建议.我强烈建议使用_object_来包装你的函数,而不是全局定义它们. (2认同)

the*_*ire 7

@ Silvio的答案仅适用于高达0xFFFF的代码点(最终是String.fromCharCode可以输出的最大值).你不能总是假设一个角色的长度是一个:

''.length
-> 2
Run Code Online (Sandbox Code Playgroud)

这是有效的:

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);
}
Run Code Online (Sandbox Code Playgroud)

使用它:

utf16ToDig('').toString(16)
-> "d800df30"
Run Code Online (Sandbox Code Playgroud)

(来自https://mothereff.in/utf-8的启示)