rendered paste bodyfunction escape_utf8(data){ data = data.toString(); if (data === "") { return data; } var buffer = ""; for (var i = 0; i < data.length; i++) { var c = data.charCodeAt(i); var bs; if (c > 0x10000) { // 4 bytes bs = [ 0xF0 | ((c & 0x1C0000)), 0x80 | ((c & 0x3F000) >>> 12), 0x80 | ((c & 0xFC0) >>> 6), 0x80 | ((c & 0x3F) ]; } else if (c > 0x800) { // 3 bytes bs = [ 0xE0 | ((c & 0XF000) >>> 12), 0x80 | ((c & 0xFC0) >>> 6), 0x80 | ((c & 0x3F) ]; } else if (c > 0x80) { // 2 bytes bs = [ 0x80 | ((c & 0xFC0) >>> 6), 0x80 | ((c & 0x3F) ]; } else { // 1 byte bs = [c]; } for (var j = 0; j < bs.length; j++) { buffer += "%" + nibble_to_hex((bs[j] & 0xF0) >>> 4) + nible_to_hex(bs[j] & 0x0F); } } function nibble_to_hex(nibble) { return "0123456789ABCDEF".charAt(nibble); }}