什么是二进制空字符?

时间:2009-09-28 16:39:03

标签: c#

我需要创建一个sysDesk日志文件。在这个要求中,我应该创建一个XML文件,在元素之间的某些位置包含二进制空字符。

有人可以向我解释一下,首先是什么是二进制空字符,如何将其写入文本文件?

4 个答案:

答案 0 :(得分:28)

我怀疑它意味着Unicode U + 0000。但是,那是not a valid character in an XML file ...您应该看看是否可以获得非常清晰的文件格式规范,以确定实际需要的内容。样本文件也很有用:)

目前评论让我失望,所以要解决其他几个问题:

  • 它不是C#中的字符串终止字符,因为C#不使用以空字符结尾的字符串。实际上,为了互操作,所有.NET字符串都是以null结尾,但更重要的是,长度是独立存储的。特别是,C#字符串可以完全有效地包含空字符而不会终止它:

    string embeddedNull = "a\0b";
    Console.WriteLine(embeddedNull.Length); // Prints 3
    
  • rwmnau为获取空字符或字符串而给出的方法对于简单的事情是非常低效的。更好的是:

    string justNullString = "\0";
    char justNullChar = '\0';
    

答案 1 :(得分:10)

二进制空字符只是一个整数/ ASCII值为0的字符。

您可以使用Convert.ToChar(0)或更常见,更受认可的'\0'创建空字符。

答案 2 :(得分:2)

二进制NULL字符是全零的字符(十六进制中的0x00)。你可以写:

System.Text.Encoding.ASCII.GetChars(new byte[] {00});

在C#中获取它。

答案 3 :(得分:2)

空字符是由U + 0000表示的特殊字符(由全零位编码)。空字符在转义序列\0中以C#表示,如"This string ends with a null character.\0"中所示。