代码之家  ›  专栏  ›  技术社区  ›  IAdapter

如何反转string.fromcharcode?

  •  45
  • IAdapter  · 技术社区  · 15 年前

    string.fromcharcode(72)给出h。如何从char h中得到数字72?

    4 回复  |  直到 7 年前
        1
  •  55
  •   Silvio Donnini    15 年前
    'H'.charCodeAt(0)
    
        2
  •  9
  •   Tatu Ulmanen    15 年前

    使用CARCODEAT:

    var str = 'H';
    var charcode = str.charCodeAt(0);
    
        3
  •  8
  •   David Refoua TaW    7 年前

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

    function CHR(ord)
    {
        return String.fromCharCode(ord);
    }
    
    function ORD(chr)
    {
        return chr.charCodeAt(0);
    }
    

    然后像这样使用它们:

    var mySTR = CHR(72);
    

    var myNUM = ORD('H');
    

    (如果您想多次使用它们,和/或在代码中大量使用它们。)

        4
  •  7
  •   theicfire    10 年前

    @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 )