Javascript-URL的奇怪字符串比较行为

Javascript-URL的奇怪字符串比较行为,javascript,c#,string,Javascript,C#,String,最近,我在编写javascript时遇到了一个字符串比较问题,我无法理解这个问题 我已经从完全相同的Url创建了两个字符串,当我比较它们时返回false,但在重新分配相同的字符串后,比较返回true 以下是我的例子: var str1 = "http://google.com/"; var str2 = "http://google.com‏/"; var eq = str1 == str2; alert(eq); //print false str1 = "http://google.co

最近,我在编写javascript时遇到了一个字符串比较问题,我无法理解这个问题

我已经从完全相同的Url创建了两个字符串,当我比较它们时返回false,但在重新分配相同的字符串后,比较返回true

以下是我的例子:

var str1 = "http://google.com/";
var str2 = "http://google.com‏/";
var eq = str1 == str2;
alert(eq); //print false


str1 = "http://google.com/";
str2 = "http://google.com/";
eq = str1 == str2;
alert(eq); //print true


我还用C#编写了相同的代码,结果是相同的,为什么会发生这种情况,我们将非常感谢您的帮助。

com
/
之间的第二个字符串中有一个不可见的字符,您可以使用此foreach循环验证:

foreach(var c in str2)
        Console.WriteLine(c);
它打印

h
t
t
p
:
/
/
g
o
o
g
l
e
.
c
o
m
‏
/

这就是它返回false的原因。顺便说一句,我只是复制/粘贴你的代码,当我手动编写代码时,它不会发生。

你是从某个地方复制粘贴它们的吗?我在某个地方看到过它,但我为这一个编写了我自己的代码。这样试试var eq=(str1==str2)@Vajura给出了相同的结果。哦,刚刚测试过,其中一个var str1=“”)中有一个奇怪的字符;var str2=”‏/"; 将其中一个复制粘贴到另一个,效果很好,这就是罪魁祸首:)但是为什么这个角色不可见呢?