比较两个不同编码的字符串

时间:2013-02-19 16:10:07

标签: javascript encoding character-encoding greasemonkey

我正在写一个Greasemonkey脚本。我需要比较两个字符串,其中一个字符串等于document.location.href

如果document.location.href等于"http://lema.rae.es/drae/?val=ñáñara",那么我需要做一些额外的事情,但我无法确定两个字符串是否相等,因为document.location.href被转换为另一个字符集。这是一个例子:

var currentLocation = document.location.href.toString();
var targetLocation = 'http://lema.rae.es/drae/?val=ñáñara';

alert(currentLocation + '\n' + targetLocation);

/* OUTPUT:

    http://lema.rae.es/drae/?val=%C3%B1%C3%A1%C3%B1ara
    http://lema.rae.es/drae/?val=ñáñara
*/

如何将两个字符串转换为相同的字符集?

2 个答案:

答案 0 :(得分:3)

只需使用:

var url = decodeURI(window.location.href);

应该够了。

请参阅:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/decodeURI

答案 1 :(得分:1)

或反过来:encodeURI("http://lema.rae.es/drae/?val=ñáñara")