Понадобилась мне такая функция, но в гугле я её не нашел. С помощью x-yuri мне удалось это сделать:
function parseStrToBuffer (string) {
var result = [],
index = 0,
length = string.length,
code;
for (; index < length; index++) {
code = string.charCodeAt(index);
if (code <= 0x7f) {
result.push(code);
} else if (code <= 0x7ff) {
result.push(code >>> 6 | 0xc0,
code & 0x3f | 0x80);
} else if (code <= 0xffff) {
result.push(code >>> 12 | 0xe0,
code >>> 6 & 0x3f | 0x80,
code & 0x3f | 0x80);
} else if (code <= 0x1fffff) {
result.push(code >>> 18 | 0xf0,
code >>> 12 & 0x3f | 0x80,
code >>> 6 & 0x3f | 0x80,
code & 0x3f | 0x80);
} else if (code <= 0x3ffffff) {
result.push(code >>> 24 | 0xf8,
code >>> 18 & 0x3f | 0x80,
code >>> 12 & 0x3f | 0x80,
code >>> 6 & 0x3f | 0x80,
code & 0x3f | 0x80);
} else if (code <= 0x7fffffff) {
result.push(code >>> 30 | 0xfc,
code >>> 24 & 0x3f | 0x80,
code >>> 18 & 0x3f | 0x80,
code >>> 12 & 0x3f | 0x80,
code >>> 6 & 0x3f | 0x80,
code & 0x3f | 0x80);
}
}
return result;
}
// Test string: ﻰﺠ﷼ﺒ╤Ή
// Result: [ 239, 187, 176, 239, 186, 160, 239, 183, 188, 239, 186, 146, 226, 149, 164, 206, 137 ]
alert(JSON.stringify(parseStrToBuffer(prompt('Enter string'))));
Функция эквивалентна вызову:
new Buffer('string', 'utf8');
в NodeJS.
Правила кодировки UTF8 брал
отсюда.