問我這件事讓我感到很痛苦,但由於某種原因,我一直無法得到它的工作(現在已經很晚了,是的,那是我的藉口) 。將單引號轉換爲字符串中的單引號
比方說,我有這樣的字符串:
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 - 的確如此。我說得對,但是,調試器讓我看到了不同的價值。 –