这个炭是什么?65279''

장선민*_*장선민 47 c# char

我有两个字符串.

一个是"\""

另一个是"\""

我认为他们是一样的.

然而,String.Compare他们说是不同的.

这很奇怪.

这是我的代码:

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");
}
Run Code Online (Sandbox Code Playgroud)

我预计它可能会打印"GoodCB".

但是,它只打印"B".

在我的调试器中,c[0]是65279''并且c[1]是34'''.并且b[0]是'''.

但我不知道65279'是什么.

这是一个空洞的角色吗?

SLa*_*aks 67

这是一个零宽度的不间断空间.
它更常用作字节顺序标记(BOM).

  • 当我无法确定它是否以''开头时,如何删除该字符? (3认同)

kur*_*age 6

如果您使用的是Notepad ++,请尝试转换为UTF-8(无BOM),并确保项目中的所有文件都是相同的文件系统格式.


Vic*_*tor 5

您可以使用以下方法删除它:

Trim(new char[]{'\uFEFF','\u200B'});
Run Code Online (Sandbox Code Playgroud)