首页 > 解决方案 > 如何在C#中显示字符“\0”

问题描述

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

string str = "\0test";

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

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

标签: c#winforms

解决方案


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

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


推荐阅读