在 C# 中,如何不对字符串中的字符序列进行转义?

How can I not escape a character sequence in a string in C#?

我正在从 C# 中的资源文件 (.resx) 中读取一个值,我在该值中添加了 \r\n\r\n 以便它以正确的格式显示。例如blah\r\n\r\nblah 由于某种原因,该字符串会自动添加一个“\”,因此有效地使文本变为 blah\r\n\r\nblah 并因此转义字符序列。

尝试使用 Shift+Enter 在 .resx 文件中添加新行而不是 \r\n。或者像 str = str.Replace("\r\n", "\r\n");

一样替换

当您存储字符串时,转义字符作为字符串文字的一部分存储,不再是 'escaping' 任何东西。您可以做的一件事是在阅读后用换行符替换占位符字符串“\r\n”。

例如:

private static void Main()
{
    var resourceStr = "blah\r\n\r\nblah";

    Console.WriteLine("Original resource string:");
    Console.WriteLine(resourceStr);

    Console.WriteLine("\nAfter calling replace:");
    Console.WriteLine(resourceStr.Replace("\r\n", Environment.NewLine));

    Console.WriteLine("\nDone!\nPress any key to exit...");
    Console.ReadKey();
}

输出