Javascript:decodeURIComponent拒绝工作

时间:2012-08-07 19:57:22

标签: javascript urldecode

我有这个人。他将一个字符串解码为一个字符串。

decodeURIComponent("Invalid Ticker Name \u0027t\u0027 at line: 3")
"Invalid Ticker Name 't' at line: 3"

现在看看这个。它告诉我们这个字符串(数组项)的来源实际上是一个字符串。

typeof decodeURIComponent(errorsArr[i])
"string"

但是当我尝试解码数组项时,它只是不起作用。

decodeURIComponent(errorsArr[i])
"Invalid Ticker Name \u0027t\u0027 at line: 3"

怎么办?

2 个答案:

答案 0 :(得分:1)

我知道它是什么。您的字符串中包含文字\u0027。您可以在浏览器中使用以下命令验证此行为:

javascript:alert("\u0027");alert("\\u0027");

当您输入时:

Invalid Ticker Name \u0027t\u0027 at line: 3

它取代了unicode角色。为什么不能使用%27

答案 1 :(得分:1)

问题已经解决。

正如代码中所写

// If the document was sent as 'application/javascript' or
// 'text/javascript', then the browser wraps the text in a <pre>
// tag and performs html encoding on the contents.  In this case,
// we need to pull the original text content from the text node's
// nodeValue property to retrieve the unmangled content.
// Note that IE6 only understands text/html

我已经开始以html / text的形式提供文件,这解决了这个问题。