C#string-创建一个未替换的反斜杠

C#string-创建一个未替换的反斜杠,c#,.net,string,escaping,C#,.net,String,Escaping,我正在使用.NET(C#)代码编写与Perl应用程序接口的数据库。当单个引号出现在字符串中时,我需要“转义”它。照此,数据库更新时,名称O'Bannon应转换为O'Bannon。但是,字符串操作(例如,Replace)的所有工作都会为反斜杠生成一个转义字符,结果是O\\'Bannon 我知道它实际上生成了第二个反斜杠,因为我可以读取结果数据库字段的值(即,它不仅仅是字符串的IDE调试值) 如何只获取输出字符串中的单个反斜杠 R您可以使用“\\”,它是后跟反斜杠的转义字符 请参见此处的转义序列列表

我正在使用.NET(C#)代码编写与Perl应用程序接口的数据库。当单个引号出现在字符串中时,我需要“转义”它。照此,数据库更新时,名称
O'Bannon
应转换为
O'Bannon
。但是,字符串操作(例如,Replace)的所有工作都会为反斜杠生成一个转义字符,结果是
O\\'Bannon

我知道它实际上生成了第二个反斜杠,因为我可以读取结果数据库字段的值(即,它不仅仅是字符串的IDE调试值)

如何只获取输出字符串中的单个反斜杠

R

您可以使用
“\\”
,它是后跟反斜杠的转义字符

请参见此处的转义序列列表:

我做了

"O'Bannon".Replace("'","\\'")
结果是

"O\'Bannon"

这就是您想要的吗?

最好为替换分配一个var,以便在需要时也可以检查它

var RepName = "O'Bannon";
var Repstr = RepName.Replace("'","\\'");

您还可以使用逐字记录字符串

s = s.Replace("'", @"\'");

当我把它放在VS中的即时窗口中时,它返回“O\\'Bannon”@MikeHanrahan,即时窗口以有效的文本形式显示它。尝试以下两种表达式:
“\\\”
“\\”。长度
。另外,在“监视”窗口中查看它,它应该是“原始的”。但是,如果你使用它是为了“安全”“对于SQL,这种方法可能有问题。@MikeHanrahan:我使用
Dump
Console.WriteLine()
C#Interactive
控制台中给出了答案中提供的结果。”我需要“转义”它…用于数据库更新。“使用@sign var RepName=@“O”Bannon”;