为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
千万里不及你 2023-07-09 16:32:38
问题很简单;如果我有以下字符串:string str = "\0test";如何在 WinForms 的标签中显示字符“\0”,它似乎会截断“\0”之后的所有字符,或者更一般地在控制台输出中,它似乎插入空格而不是“\ 0”?Console.WriteLine(str); label.Text = str;
查看完整描述

4 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

要显示所有字符串,您应该在其前面加上前缀@

string str = @"\0test";
查看完整回答
反对 回复 2023-07-09
?
冉冉说

TA贡献1877条经验 获得超1个赞

您要求显示“不可打印”字符。字体通常没有这些字形,并且在适当的情况下,渲染器会解释 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

您可能仍然遇到用户的字体不支持这些字符的问题。(有些浏览器也不支持,所以可能很难明白我在说什么。)


查看完整回答
反对 回复 2023-07-09
?
茅侃侃

TA贡献1842条经验 获得超21个赞

\0字符终止一个字符串,并且不应该是可打印的,因为它用于终止一个字符串。

让我们将 替换\0°终止符号。字符串示例:

  1. abcd°

  2. ab°cd°

  3. °abcd°

  4. °°

注意:系统会自动终止字符串,因此所有字符串都以°. 因此,如果您打印其中任何一个,您将得到:

  1. abcd

  2. ab

  3. (空格为必填项,代表空)

  4. (空格为必填项,代表空)

由于系统在第一次出现终止符号时终止。


查看完整回答
反对 回复 2023-07-09
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

双反斜杠:

string str = "\\0test";

字符串str现在包含\0test


查看完整回答
反对 回复 2023-07-09
  • 4 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信