c# - 渲染特殊字符 C#

标签 c# string winforms string-formatting

我有一个包含特殊字符 的字符串,例如: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();
            }
        }
    }

我需要做什么?提前致谢。

最佳答案

这是我显示 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();
        }
    }
}

关于c# - 渲染特殊字符 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56459791/

相关文章:

c# - 如何合并不同 switch case 下的方法调用,使代码通用或优化?

c# - 在C++中实现锁

c# - 在 C# 中使用 OpenXML 应用数字格式时遇到问题

java - 有没有办法去掉重音符号并将整个字符串转换为常规字母?

string - 如何检查用户是否在 Go 中输入了空值?

android - 将字符串从一个 Activity 发送到另一个 Activity

c# - 在 Unity 中使用 GetComponent 时通过基类管理派生类?

c# - 电影院座位排c#

c# - Winforms Treeview 节点工具提示自定义

database - 从 Visual C++ 程序/项目中按一定时间间隔在数据库中插入值