c# - 如何在C#中显示字符“\0”
问题描述
问题很简单;如果我有以下字符串:
string str = "\0test";
如何在 WinForms 的标签中显示字符“\0”,它似乎切断了“\0”之后的所有字符,或者更一般地在控制台输出中,它似乎插入空格而不是“\ 0”?
Console.WriteLine(str);
label.Text = str;
解决方案
您要求显示“不可打印”的字符。字体通常没有这些字形,并且在适当的情况下,渲染器将 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
您可能仍然遇到用户字体不支持这些字符的问题。(有些浏览器也没有,所以可能很难看懂我在说什么。)
推荐阅读
- javascript - 向列表元素添加一个按钮,该按钮在单击时显示剩余元素
- python - Pandas to_sql 使用带有大数组的 sqlalchemy 生成错误
- sql-server - 如何为链接表设置列默认值?
- css - 这怎么可能使用任何 CSS 布局(网格、flexbox ..)
- javascript - 如何使溢出容器可拖动
- c++ - 如何使用winapi单击另一个应用程序上的按钮?
- vb.net - 选择粗体、斜体或下划线时如何保留字体样式和大小?
- angular - 使用 ToggleButton ($event) 出现 Angular 错误——发出事件
- c++ - 编译器显示中止调用
- angular - Angular 的 Keycloak 不发送图像的不记名身份验证