This should do the trick:
function padWithLeadingZeros(string) { return new Array(5 - string.length).join("0") + string; } function unicodeCharEscape(charCode) { return "\\u" + padWithLeadingZeros(charCode.toString(16)); } function unicodeEscape(string) { return string.split("") .map(function (char) { var charCode = char.charCodeAt(0); return charCode > 127 ? unicodeCharEscape(charCode) : char; }) .join(""); }
For instance:
var specialStr = 'ipsum áá éé lore'; var encodedStr = unicodeEscape(specialStr); assert.equal("ipsum \\u00e1\\u00e1 \\u00e9\\u00e9 lore", encodedStr);
source share