繁体   English   中英

如何在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");

当您存储字符串时,转义字符被存储为字符串文字的一部分,并且不再“转义”任何内容。 您可以做的一件事是在阅读后用换行符替换占位符字符串“ \\ 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();
}

产量

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM