You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#是否提供内置方法将字符串控制字符转换为普通字符?

控制字符可视化的实现方案

.NET框架类库中没有专门的内置方法,能直接把控制字符转换成Notepad++风格的可视化普通字符。不过你可以自己实现一个转换逻辑,来达到类似的效果。

自定义转换方法示例

可以写一个字符串扩展方法,针对常见控制字符做映射替换,对于少见的控制字符则显示其Unicode编码:

public static class StringExtensions
{
    public static string VisualizeControlChars(this string input)
    {
        if (string.IsNullOrEmpty(input))
            return input;

        var sb = new StringBuilder(input.Length);
        foreach (char c in input)
        {
            if (char.IsControl(c))
            {
                sb.Append(c switch
                {
                    '\r' => "[CR]",
                    '\n' => "[LF]",
                    '\t' => "[TAB]",
                    '\0' => "[NULL]",
                    '\b' => "[BACKSPACE]",
                    '\f' => "[FORMFEED]",
                    '\v' => "[VTAB]",
                    _ => $"[U+{(int)c:X4}]" // 其他控制字符显示Unicode十六进制编码
                });
            }
            else
            {
                sb.Append(c);
            }
        }
        return sb.ToString();
    }
}

使用方式

调用这个扩展方法就能将包含控制字符的字符串转为可视化形式:

string original = "Hello\tWorld\r\nThis is a test\0";
string visualized = original.VisualizeControlChars();
// 输出结果:Hello[TAB]World[CR][LF]This is a test[NULL]

你可以根据Notepad的具体显示规则,调整switch里的映射内容,比如把某些控制字符替换成更贴近Notepad的符号(比如用␍表示回车,␊表示换行),完全匹配其可视化效果。


内容的提问来源于stack exchange,提问作者Brondahl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:20:55