C# 中字符串中的特殊序列替换

问题描述 投票:0回答:2

我有一个像下面这样的字符串

Testing\u001cTesting Testing Testing\u001cTesting

当我尝试在

Http.Response
中发送此回复时,我在 Postman 中得到了类似(方框)的信息。

我想用

\u001c
替换
\u{001c}

我尝试了以下,

  • myText.Replace("\u001c", @"\\u{001c}");
    --- 它会像这样被替换
    \\\\u{001c}

  • myText.Replace("\u001c", @"u{001c}");
    --- 它会像这样被替换
    u{001c}

  • myText.Replace("\u001c", @"\u{001c}");
    --- 它会像这样被替换
    \\u{001c}

  • myText.Replace("u001c", @"u{001c}");
    --- 像这样替换(方框)

我的错误在哪里?

c# .net string replace
2个回答
0
投票

“\”字符是一个特殊字符。当您想在字符串中包含该字符时,您必须使用转义字符,它也是“\”。 因此,如果您想要“c:.txt”,您需要将其写为“c:\a.txt”。 但这使得处理地址和 URL 变得困难,因为它们中可能有很多“\”。 因此,当您想使用地址时,可以将@放在字符串之前,让编译器添加转义字符。 简而言之,当您使用 @"\" 时,编译器会添加第二个。 如果您想将“\u001c”替换为“\u{001c}”,您必须执行以下操作:

myText.Replace("\\u001c", "\\u{001c}");

0
投票

这对我有用:

private void button10_Click(object sender, EventArgs e)
{
    textBox14.Text = "\u3010 Hola \u3011";
}

private void button11_Click(object sender, EventArgs e)
{
    string myStr1 = textBox14.Text;

    myStr1 = myStr1.Replace("\u3010", " [");
    myStr1 = myStr1.Replace("\u3011", "] ");

    textBox14.Text = myStr1;
}

private void button12_Click(object sender, EventArgs e)
    {
        string myStr1 = textBox14.Text;

        myStr1 = myStr1.Replace(" [", "\u3010");
        myStr1 = myStr1.Replace("] ", "\u3011");

        textBox14.Text = myStr1;
    }

两侧使用相同的符号。

希望对您有帮助。 ✌️

© www.soinside.com 2019 - 2024. All rights reserved.