web-dev-qa-db-ja.com

String.fromCharCodeを逆にする方法は?

String.fromCharCode(72)はHを提供します。charHから72番を取得する方法は?

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

CharCodeAtを使用します。

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

@Silvioの答えは、0xFFFFまでのコードポイント(最終的には、String.fromCharCodeが出力できる最大値)に対してのみ当てはまります。文字の長さが常に1であるとは限りません。

'????'.length
-> 2

これが機能するものです:

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);
}

それを使う:

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

https://mothereff.in/utf-8 からのインスピレーション)

7
theicfire

次のように独自のグローバル関数を定義できます:

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

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

次に、次のように使用します:

var mySTR = CHR(72);

または

var myNUM = ORD('H');

(それらを複数回使用する場合、および/またはコードで多く使用する場合。)

7
David Refoua