将单引号转换为字符串中的转义单引号

时间:2012-05-23 22:10:37

标签: c# string replace escaping

我很难问这个问题,但是,由于某种原因,我无法让它工作(当天晚些时候,是的,这是我的借口)。

假设我有这个字符串:

s = "John's book."

使用对象String中的replace方法,我想将其转换为:

s = "John\'s book."

我原本希望这段代码能给我我想要的东西:

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

但是,结果是:

"John\\'s book."

4 个答案:

答案 0 :(得分:66)

这样做,所以你不必考虑它:

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

答案 1 :(得分:4)

在使用mysql insert子句之前,我有一个快速而脏的函数来转义文本,这可能会有所帮助:

    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");
        }
    }

答案 2 :(得分:2)

最简单的就是

Server.HtmlEncode(varYourString);

答案 3 :(得分:2)

只是为了展示另一个可能的解决方案,如果这与MVC.NET(MVC5 +)有关:

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

这允许您转义并将数据作为JavaScript传递给视图。 关键部分是:

HttpUtility.JavaScriptStringEncode