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