2013-04-10 28 views

回答

6
decodeURIComponent('\u003cb\u003estring\u003c/b\u003e'); 

// "<b>string</b>" 

编辑 - 如果我能我会删除上面的回答。

原来的问题是有点暧昧。

console.log('\u003cb\u003estring\u003c/b\u003e');就已经产生<b>string</b>

如果\字符转义,那么可以使用的替代方法只有\更换\\,从而使适当的Unicode转义序列。

+0

注意字符串已经''。 'decodeURIComponent'什么都没做。 http://jsfiddle.net/ZAXux/。这里有一个的jsfiddle显示'decodeURIComponent'什么都不做时,该字符串字面'\ u003cb \ u003estring \ u003c/B \ u003e' http://jsfiddle.net/ZAXux/1/ – Esailija 2013-04-10 23:41:57

+0

@Esailija你的第二个的jsfiddle有一个额外的“\ “性格。至于你的第一个陈述,你的意思是“什么都不做”? – 2013-04-11 03:07:09

+1

在javascript中,你需要编写'“\\ u”'来从字面上获得'u'。如果您没有转义反斜杠并写入“\ u”,它将被解释为Unicode转义序列。无所谓,我的意思是它没有做任何事情,它可以在没有任何改变的情况下被移除,如第一个jsfiddle所示。所以:'decodeURIComponent('\ u003cb \ u003estring \ u003c/b \ u003e'); ===“\ u003cb \ u003estring \ u003c/B \ u003e'' – Esailija 2013-04-11 08:58:52

13

这是一个How do I decode a string with escaped unicode? DUP。一个给定的,应该工作的答案:

var x = '\\u003cb\\u003estring\\u003c/b\\u003e'; 
JSON.parse('"' + x + '"') 

输出:

'<b>string</b>' 
+0

你是天才... :) – 2016-04-13 20:46:54

+0

最好的答案为止! – mafonya 2017-08-09 07:41:20