I have two strings.
one is "\""
and the other is "\""
I think that they are same.
However, String.Compare
says they are different.
This is very strange.
Here's my code:
string b = "\"";
string c = "\"";
if (string.Compare(b, c) == 0)
{
Console.WriteLine("Good");
}
if (c.StartsWith("\""))
{
Console.WriteLine("C");
}
if (b.StartsWith("\""))
{
Console.WriteLine("B");
}
I expected that it may print "GoodCB".
However, it only prints "B".
In my debugger, c[0]
is 65279 '' and c[1]
is 34 '"'. and b[0]
is '"'.
But I don't know what 65279 '' is.
Is it an empty character?
It's a zero-width no-break space.
It's more commonly used as a byte-order mark (BOM).
If you are using Notepad++, try converting to UTF-8 (no BOM), and also make sure ALL your files in the project are the same file system format.
You can remove it with:
Trim(new char[]{'\uFEFF','\u200B'});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With