C#中如何显示字符“\0”

问题很简单;如果我有以下字符串:

string str = "\0test";

如何在 WinForms 的标签中显示字符“\0”,它似乎会截断“\0”之后的所有字符,或者更一般地在控制台输出中,它似乎插入空格而不是“\ 0”?

Console.WriteLine(str);
label.Text = str;


千万里不及你
浏览 119回答 4
4回答

一只斗牛犬

要显示所有字符串,您应该在其前面加上前缀@:string str = @"\0test";

冉冉说

您要求显示“不可打印”字符。字体通常没有这些字形,并且在适当的情况下,渲染器会解释 TAB、LF 和 CR 来定位而不是字形。一种方法是将它们替换为控制图片字符。String str = "\0test";var controlCharacters = new Regex(@"([\u0000-\u001F])");String displayStr = controlCharacters.Replace(str, m => ((Char)(m.Groups[1].Value[0] + '\u2400')).ToString());// ␀test您可能仍然遇到用户的字体不支持这些字符的问题。(有些浏览器也不支持,所以可能很难明白我在说什么。)

茅侃侃

该\0字符终止一个字符串,并且不应该是可打印的,因为它用于终止一个字符串。让我们将 替换\0为°终止符号。字符串示例:abcd°ab°cd°°abcd°°°注意:系统会自动终止字符串,因此所有字符串都以°. 因此,如果您打印其中任何一个,您将得到:abcdab(空格为必填项,代表空)(空格为必填项,代表空)由于系统在第一次出现终止符号时终止。

饮歌长啸

双反斜杠:string str = "\\0test";字符串str现在包含\0test
打开App,查看更多内容
随时随地看视频慕课网APP