什么是二进制空字符?
我需要创建一个sysDesk日志文件。 在这个要求中,我应该创建一个XML文件,在元素之间的某些位置包含二进制空字符。
有人可以向我解释,首先是什么是二进制空字符,我怎么能写一个文本文件?
我怀疑这意味着Unicode U + 0000。 但是,这不是XML文件中的有效字符 …您应该看看是否可以获得非常清晰的文件格式规范,以确定实际需要的内容。 示例文件也很有用:)
目前评论都没有让我失望,所以要解决其他几个问题:
-
它不是C#中的字符串终止字符,因为C#不使用以null结尾的字符串。 实际上,为了互操作,所有.NET字符串都以空值终止,但更重要的是长度是独立存储的。 特别是,C#字符串可以完全有效地包含空字符而不终止它:
string embeddedNull = "a\0b"; Console.WriteLine(embeddedNull.Length); // Prints 3
-
rwmnau给出的用于获取空字符或字符串的方法对于简单的事情是非常低效的。 更好的是:
string justNullString = "\0"; char justNullChar = '\0';
二进制空字符只是一个整数/ ASCII值为0的char。
您可以使用Convert.ToChar(0)
或更常见,更公认的'\0'
创建一个空字符。
二进制NULL字符是全零的字符(hex中的0x00)。 你可以写:
System.Text.Encoding.ASCII.GetChars(new byte[] {00});
在C#中获取它。
空字符是由U + 0000表示的特殊字符(由全零位编码)。 空字符在转义序列\0
以C#表示,如"This string ends with a null character.\0"
。