在Javascript中使用奇怪的编码

在Javascript中使用奇怪的编码,javascript,character-encoding,Javascript,Character Encoding,我正在使用第三方API(即Read it Later API),我注意到所有字符串都以以下格式返回: http:\ ;/\/www.fourhourworkweek.com\/博客\/2007\/11\/07\/如何学习 菲利普·格林斯潘的博客\;愚蠢的白人批评聪明的中国女人 现在,我知道了\;'实际上是一个“\”,而“\;u00bb”实际上代表\u00bb,它代表“»” 但是我应该如何使用Javascript来解码呢?为什么不

我正在使用第三方API(即Read it Later API),我注意到所有字符串都以以下格式返回:

http:\ ;/\/www.fourhourworkweek.com\/博客\/2007\/11\/07\/如何学习 菲利普·格林斯潘的博客\;愚蠢的白人批评聪明的中国女人

现在,我知道了\;'实际上是一个“\”,而“\;u00bb”实际上代表\u00bb,它代表“»”


但是我应该如何使用Javascript来解码呢?

为什么不使用str.replace呢?像这样:

    var str="http:\/\/www.fourhourworkweek.com\/blog\/2007\/11\/07\/how-to-learn-b Philip Greenspun's Weblog \u00bb Stupid white man criticizes smart Chinese woman";
    str=str.replace (/\/ig,"\\"); 

结果在

上,字符串看起来已转义,请尝试通过javascript中的
unescape(string)
函数运行字符串,该函数将返回原始版本。

此字符串已被javascript转义,然后进行HTML编码

因此,首先您必须解码HTML:

var foo = "http:\/\/www.fourhourworkweek.com\/blog\/2007\/11\/07\/how-to-learn-b Philip Greenspun's Weblog \u00bb Stupid white man criticizes smart Chinese woman";

var element = document.createElement('div');
element.innerHTML = foo;
foo = element.firstChild.data;
然后是JavaScript

不幸的是,我不知道这样做的好方法,所以我求助于
eval
。如果你能找到更好的方法,请发表评论

foo = eval("'" + foo.replace("'", "\\'").replace('\n', '\\n') + "'");
alert(foo);

使用两种不同的编码方案对字符串进行了两次转义
unescape
从第三种编码方案进行解码(因此根本没有帮助),但无论如何都被弃用。它只在这种情况下起作用,但不是通用的解决方案。这肯定是正确的方法,但在评估步骤中我仍然会遇到一些错误。我认为新线人物正在打破它。我会去修理它,然后回来提出最终的解决方案。