在 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();
}
输出
我正在从 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();
}
输出