Подтвердить что ты не робот

Превращение одной кавычки в экранированную одиночную кавычку внутри строки

Мне больно спрашивать об этом, но почему-то мне не удалось заставить это работать (это в конце дня, да, это мое оправдание).

Скажем, у меня есть эта строка:

s = "John book."

Используя метод replace из объекта String, я хочу включить его в это:

s = "John\ book."

Я бы ожидал, что этот код даст мне то, что я хочу:

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

Но это приводит к:

"John\\ book."
4b9b3361

Ответ 1

Сделайте это, чтобы не думать об этом:

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

Ответ 2

У меня есть быстрая и грязная функция для удаления текста перед использованием в предложении вставки 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");
        }
    }

Ответ 3

Простейшим может быть

Server.HtmlEncode(varYourString);

Ответ 4

Просто чтобы показать другое возможное решение, если это связано с MVC.NET(MVC5 +):

var data= JSON.parse('@Html.Raw(HttpUtility.JavaScriptStringEncode(JsonConvert.SerializeObject(Model.memberObj)))');

Это позволяет вам уйти и передавать данные в виде JavaScript. Ключевая часть:

HttpUtility.JavaScriptStringEncode