这是啥字符? 65279 ''

Posted

技术标签:

【中文标题】这是啥字符? 65279 \'\'【英文标题】:What is this char? 65279 ''这是什么字符? 65279 '' 【发布时间】:2011-10-10 17:14:43 【问题描述】:

我有两个字符串。

一个是"\""

另一个是"\""

我认为他们是一样的。

但是,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");

我预计它可能会打印“GoodCB”。

但是,它只打印“B”。

在我的调试器中,c[0] 是 65279 '',c[1] 是 34 '"'。b[0] 是 '"'。

但我不知道 65279 '' 是什么。

它是一个空字符吗?

【问题讨论】:

你的字符串是从哪里来的?你可能读错了。 它通常作为 utf-16 编码文本文件中的第一个字符出现。使用 StreamReader,而不是 FileStream。 【参考方案1】:

您可以使用以下方法将其删除:

Trim(new char[]'\uFEFF','\u200B');

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

如果您正在读取您在记事本中打开的文件,它可能已经添加了它,因为它是几个臭名昭著的程序之一。

【讨论】:

当我不确定它是否以 '' 开头时,如何删除该字符。 记事本和其他程序正在保存 UTF8 文件,这是一种有效且常见的格式。仅当您读取编码错误的文件时,BOM 才会打扰您。 我想使用 c[0] == '' 来确定 '' 是否存在,但我无法构建它。【参考方案4】:

这是zero-width no-break space。 它更常用作byte-order mark (BOM)。

【讨论】:

当我不确定它是否以 '' 开头时,如何删除该字符? 非常感谢!在找到您的解决方案之前,我一直在碰壁!

以上是关于这是啥字符? 65279 ''的主要内容,如果未能解决你的问题,请参考以下文章

如何避免在php中回显字符65279?

maven编译工程时出现非法字符: 65279错误

char '0x8' 这是啥字符?

这是啥“PCDATA 无效字符值 11”错误? [复制]

&#65279导致页面顶部空白一行解决方法

如何使用子字符串函数,这是啥意思? [复制]