問題很簡單;如果我有以下字符串:string str = "\0test";如何在 WinForms 的標簽中顯示字符“\0”,它似乎會截斷“\0”之后的所有字符,或者更一般地在控制臺輸出中,它似乎插入空格而不是“\ 0”?Console.WriteLine(str);
label.Text = str;
4 回答

冉冉說
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
您可能仍然遇到用戶的字體不支持這些字符的問題。(有些瀏覽器也不支持,所以可能很難明白我在說什么。)

茅侃侃
TA貢獻1842條經驗 獲得超21個贊
該\0
字符終止一個字符串,并且不應該是可打印的,因為它用于終止一個字符串。
讓我們將 替換\0
為°
終止符號。字符串示例:
abcd°
ab°cd°
°abcd°
°°
注意:系統會自動終止字符串,因此所有字符串都以°
.?因此,如果您打印其中任何一個,您將得到:
abcd
ab
(空格為必填項,代表空)
(空格為必填項,代表空)
由于系統在第一次出現終止符號時終止。
- 4 回答
- 0 關注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消