function ucs2decode (string){ let array = []; let counter = 0; let length = string.length; let value; let extra; while(counter < length){ value = string.charCodeAt(counter++); if (value >= 0xD800 && value <= 0xDBFF && counter < length){ extra = string.charCodeAt(counter++); if ((extra & 0xFC00) == 0xDC00){ array.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); }else{ array.push(value); counter--; } }else{ array.push(value); } } return array; }