How to convert text to binary code in JavaScript?

后端 未结 13 1847
囚心锁ツ
囚心锁ツ 2020-11-28 05:00

Text to Binary Code

I want JavaScript to translate text in a textarea into binary code.

For example, if a user types in "TEST

13条回答
  •  北荒
    北荒 (楼主)
    2020-11-28 05:40

    Here's a pretty generic, native implementation, that I wrote some time ago,

    // ABC - a generic, native JS (A)scii(B)inary(C)onverter.
    // (c) 2013 Stephan Schmitz 
    // License: MIT, http://eyecatchup.mit-license.org
    // URL: https://gist.github.com/eyecatchup/6742657
    var ABC = {
      toAscii: function(bin) {
        return bin.replace(/\s*[01]{8}\s*/g, function(bin) {
          return String.fromCharCode(parseInt(bin, 2))
        })
      },
      toBinary: function(str, spaceSeparatedOctets) {
        return str.replace(/[\s\S]/g, function(str) {
          str = ABC.zeroPad(str.charCodeAt().toString(2));
          return !1 == spaceSeparatedOctets ? str : str + " "
        })
      },
      zeroPad: function(num) {
        return "00000000".slice(String(num).length) + num
      }
    };
    

    and to be used as follows:

    var binary1      = "01100110011001010110010101101100011010010110111001100111001000000110110001110101011000110110101101111001",
        binary2      = "01100110 01100101 01100101 01101100 01101001 01101110 01100111 00100000 01101100 01110101 01100011 01101011 01111001",
        binary1Ascii = ABC.toAscii(binary1),
        binary2Ascii = ABC.toAscii(binary2);
    
    console.log("Binary 1:                   " + binary1);
    console.log("Binary 1 to ASCII:          " + binary1Ascii);
    console.log("Binary 2:                   " + binary2);
    console.log("Binary 2 to ASCII:          " + binary2Ascii);
    console.log("Ascii to Binary:            " + ABC.toBinary(binary1Ascii));     // default: space-separated octets
    console.log("Ascii to Binary /wo spaces: " + ABC.toBinary(binary1Ascii, 0));  // 2nd parameter false to not space-separate octets
    

    Source is on Github (gist): https://gist.github.com/eyecatchup/6742657

    Hope it helps. Feel free to use for whatever you want (well, at least for whatever MIT permits).

提交回复
热议问题