我想编写一种方法来将特殊字符(如“ä”)转义为响应的 Unicode(例如 \u00e4)。
出于某种原因,JS 发现在内部甚至不保存 'ä' 而是使用 'üÜ' 或其他一些乱码很有趣,所以当我转换它时会吐出 '\u00c3\u00b6\u00c3\u002013' 因为它转换这些字符而不是'一种'。
我尝试将 HTML 文件的编码设置为 utf-8,并尝试使用 charset="UTF-8" 加载脚本无济于事。该代码并没有真正做任何特别的事情,但它是:
String.prototype.replaceWithUtf8 = function() {
var str_newString = '';
var str_procString = this;
for (var i = 0; i < str_procString.length; i++) {
if (str_procString.charCodeAt(i) > 126) {
var hex_uniCode = '\\u00' + str_procString.charCodeAt(i).toString(16);
console.log(hex_uniCode + " (" + str_procString.charAt(i) + ")");
str_newString += hex_uniCode;
} else {
str_newString += str_procString.charAt(i);
}
}
return str_newString;
}
var str_item = "Lärm, Lichter, Lücken, Löcher."
console.log(str_item); // Lärm, Lichter, Lücken, Löcher.
console.log(str_item.replaceWithUtf8()); //L\u00c3\u00a4rm, Lichter, L\u00c3\u00bccken, L\u00c3\u00b6cher.