web-dev-qa-db-fra.com

Quel est ce char? 65279 ''

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?

45
장선민

C'est un espace sans interruption de largeur nulle .
Il est plus couramment utilisé comme marque d'ordre des octets (BOM) .

63
SLaks

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.

6
kurdtpage

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.

4
Dan Witkowski