Decode hexadecimal string

Decodes a string of hexadecimal character codes into characters.

JavaScript

function snmphexdecode(hex) {
    
    var preStr = '';
    hex.split(" ").forEach(function(charcode, i) {
      preStr += String.fromCharCode(parseInt(charcode, 16));
    });
    
    var result = "";
    
    var i = 0;
    var c = c1 = c2 = 0;

    while ( i < preStr.length ) {

      c = preStr.charCodeAt(i);

      if (c < 128) {
        result += String.fromCharCode(c);
        i++;
      }
      else if((c > 191) && (c < 224)) {
        c2 = preStr.charCodeAt(i+1);
        result += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
        i += 2;
      }
      else {
        c2 = preStr.charCodeAt(i+1);
        c3 = preStr.charCodeAt(i+2);
        result += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
        i += 3;
      }

    }

    return result;
}


alert(snmphexdecode('D0 9C D0 BE D0 B4 D1 83 D0 BB D1 8C 20 D1 81 D0 B1 D0 BE D1 80 D0 B0 20 D1 82 D0 BE D0 BD D0 B5 D1 80 D0 B0 20 48 50 20 43 45 32 35 34 41 00'));