问我这件事让我感到很痛苦,但由于某种原因,我一直无法得到它的工作(现在已经很晚了,是的,那是我的借口) 。将单引号转换为字符串中的单引号
比方说,我有这样的字符串:
s = "John's book."
使用从对象的字符串的replace
方法,我希望把它变成这样:
s = "John\'s book."
我本来期望这个代码给我想要什么:
s = s.Replace("'", "\\'")
但是,结果是:
"John\\'s book."
问我这件事让我感到很痛苦,但由于某种原因,我一直无法得到它的工作(现在已经很晚了,是的,那是我的借口) 。将单引号转换为字符串中的单引号
比方说,我有这样的字符串:
s = "John's book."
使用从对象的字符串的replace
方法,我希望把它变成这样:
s = "John\'s book."
我本来期望这个代码给我想要什么:
s = s.Replace("'", "\\'")
但是,结果是:
"John\\'s book."
我有一个快速和肮脏的功能使用在MySQL插入句之前逃脱的文字,这可能帮助:
public static string MySqlEscape(Object usString)
{
if (usString is DBNull)
{
return "";
}
else
{
string sample = Convert.ToString(usString);
return Regex.Replace(sample, @"[\r\n\x00\x1a\\'""]", @"\$0");
}
}
只是为了展示另一种可能的解决方案,如果这属于MVC.NET(MVC5 +):
var data= JSON.parse('@Html.Raw(HttpUtility.JavaScriptStringEncode(JsonConvert.SerializeObject(Model.memberObj)))');
这可以让你逃脱和数据传递到的意见,如JavaScript。 关键部分是:
HttpUtility.JavaScriptStringEncode
你在做什么看起来应该工作。这是调试器的结果吗?我认为VS会通过显示'\\'而不是'\'来“帮助”。 – SirPentor
@SirPentor - 的确如此。我说得对,但是,调试器让我看到了不同的价值。 –