我想编写一种方法将特殊字符(如'ä')转义为其响应的Unicode(例如\ u00e4)。具有特殊字符的JavaScript编码
出于某种原因,JS认为有一件有趣的事情甚至不救的“a”内部,但使用“üÜ”或其他一些断章取义,所以当我把它转换吐出“\ 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.
这似乎是工作正常(http://jsfiddle.net/4HmgN/)。你是如何在HTML上设置编码的? – mihai
嗨@mihai,我在head-tag中设置了它: '' – ProudOne
@mihai and like所以在脚本标签: '' – ProudOne