J'ai deux cordes.
l'un est "\""
et l'autre est "\" "
Je pense que ce sont les mêmes.
Pourtant, String.Compare
dit qu'ils sont différents.
C'est très étrange.
Voici mon 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");
}
Je m'attendais à ce qu'il imprime "GoodCB".
Cependant, il imprime uniquement "B".
Dans mon débogueur, c[0]
est 65279 '' et c[1]
est 34 '"'. et b[0]
est '"'.
Mais je ne sais pas ce qu'est 65279 ''.
Est-ce un personnage vide?
C'est un espace sans interruption de largeur nulle .
Il est plus couramment utilisé comme marque d'ordre des octets (BOM) .
Si vous utilisez Notepad ++, essayez de convertir en UTF-8 (pas de nomenclature) et assurez-vous également que TOUS vos fichiers dans le projet sont au même format de système de fichiers.
Si vous lisez un fichier que vous avez ouvert dans le bloc-notes, il est possible qu'il l'ait ajouté car il s'agit de l'un des nombreux programmes connus pour le faire.