渲染特殊字符C#

reg*_*sls 6 c# string string-formatting winforms

我有一个包含特殊字符的字符串,例如以下示例:12345678912 \ rJ \ u0011,因为我需要有权访问这些特殊字符来配置我的应用程序。我想在TextBox字段中完全显示此字符串,因此到目前为止,我尝试过的所有操作都会产生一个字符串,其中该字符\u0011尝试使用结尾处的空字符进行呈现:"7896104866061\rJ"

我做了这个,但是没用。

string result = Regex.Replace(
    ToLiteral(this.Buffer), 
   "[^\x00-\x7Fd]", 
    c => string.Format("\\u{0:x4}", (int)c.Value[0]))
 .Replace(@"\", @"\\");

public static string ToLiteral(string input)
    {
        using (var writer = new StringWriter())
        {
            using (var provider = CodeDomProvider.CreateProvider("CSharp"))
            {
                provider.GenerateCodeFromExpression(
                    new CodePrimitiveExpression(input), 
                    writer, 
                    null);

                return writer.ToString();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我该怎么办?提前致谢。

Fab*_*bio 2

这是我显示 ctrl 字符的代码片段:https://gist.github.com/TheTrigger/6efa6a8e42eedf1e61e0db8e9ef4360a

using System.Text;

namespace CtrlCharReplace
{
    public static class Extensions
    {
        public static string ReplaceCtrl(this string s)
        {
            var sb = new StringBuilder();
            for (int i = 0; i < s.Length; i++)
            {
                char c = s[i];

                var isCtrl = char.IsControl(c);
                var n = char.ConvertToUtf32(s, i);

                if (isCtrl)
                {
                    sb.Append($"\\u{n:X4}");
                }
                else
                {
                    sb.Append(c);
                }
            }

            return sb.ToString();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)