我正在使用Google Maps API。请查看此JSON响应。
HTML指令如下:
"html_instructions" : "Turn \u003cb\u003eleft\u003c/b\u003e onto \u003cb\u003eEnggårdsgade\u003c/b\u003e"
如何在JavaScript中转换unicode编码为\u003c
, \u003e
等字符?
我正在使用Google Maps API。请查看此JSON响应。
HTML指令如下:
"html_instructions" : "Turn \u003cb\u003eleft\u003c/b\u003e onto \u003cb\u003eEnggårdsgade\u003c/b\u003e"
如何在JavaScript中转换unicode编码为\u003c
, \u003e
等字符?
这些是 JavaScript 字符串中的 Unicode 字符转义序列。就 JavaScript 而言,它们表示相同的字符。
'\u003cb\u003eleft\u003c/b\u003e' == '<b>left</b>'; // true
所以,您根本不需要进行任何转换。<b>
而不是\u003cb\u003e
。 - dhrmdocument.body.innerHTML = '\u003cb\u003eleft\u003c/b\u003e';
将产生与document.body.innerHTML = '<b>left</b>';
完全相同的效果。 - Mathias Bynens现代JavaScript提供了更简单的方法。
ES6 / ES2015在字符串原型上引入了normalize()方法,因此我们可以这样做:
var directions = "Turn \u003cb\u003eleft\u003c/b\u003e onto \u003cb\u003eEnggårdsgade\u003c/b\u003e";
directions.normalize();
//it will return : "Turn <b>left</b> onto <b>Enggårdsgade</b>"
JSON.parse(JSON.stringify({a : 'Turn \u003cb\u003eleft\u003c/b\u003e onto \u003cb\u003eEnggårdsgade\u003c/b\u003e'}));
这个小函数可能会有所帮助
String.prototype.toUnicode = function(){
var hex, i;
var result = "";
for (i=0; i<this.length; i++) {
hex = this.charCodeAt(i).toString(16);
result += ("\\u00"+hex).slice(-7);
}
return result;
};
\u003c
是<
的 Unicode 转义序列(参见 http://mathiasbynens.be/notes/javascript-escapes#unicode),第二个字符是b
。 - Mathias Bynens