Ответ 1
Сделайте это, чтобы не думать об этом:
s = s.Replace("'", @"\'");
Мне больно спрашивать об этом, но почему-то мне не удалось заставить это работать (это в конце дня, да, это мое оправдание).
Скажем, у меня есть эта строка:
s = "John book."
Используя метод replace
из объекта String, я хочу включить его в это:
s = "John\ book."
Я бы ожидал, что этот код даст мне то, что я хочу:
s = s.Replace("'", "\\'")
Но это приводит к:
"John\\ book."
Сделайте это, чтобы не думать об этом:
s = s.Replace("'", @"\'");
У меня есть быстрая и грязная функция для удаления текста перед использованием в предложении вставки 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");
}
}
Простейшим может быть
Server.HtmlEncode(varYourString);
Просто чтобы показать другое возможное решение, если это связано с MVC.NET(MVC5 +):
var data= JSON.parse('@Html.Raw(HttpUtility.JavaScriptStringEncode(JsonConvert.SerializeObject(Model.memberObj)))');
Это позволяет вам уйти и передавать данные в виде JavaScript. Ключевая часть:
HttpUtility.JavaScriptStringEncode