需要在JavaScript中转义非ASCII字符

Han*_*noi 5 javascript

是否有任何功能可以执行以下操作?

var specialStr = 'ipsum áá éé lore';
var encodedStr = someFunction(specialStr);
// then encodedStr should be like 'ipsum \u00E1\u00E1 \u00E9\u00E9 lore'
Run Code Online (Sandbox Code Playgroud)

我需要编码超出ASCII范围的字符,并需要使用该编码.我不知道它的名字.它可能是Unicode吗?

Dom*_*nic 13

这应该做的伎俩:

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("");
}
Run Code Online (Sandbox Code Playgroud)

例如:

var specialStr = 'ipsum áá éé lore';
var encodedStr = unicodeEscape(specialStr);

assert.equal("ipsum \\u00e1\\u00e1 \\u00e9\\u00e9 lore", encodedStr);
Run Code Online (Sandbox Code Playgroud)