Cela me fait mal de demander cela, mais, pour une raison quelconque, je n'ai pas réussi à faire fonctionner cela (il est tard dans la journée, oui, c'est mon excuse).
Disons que j'ai cette chaîne:
s = "John's book."
En utilisant la méthode replace
de l'objet String, je veux la transformer en ceci:
s = "John\'s book."
Je m'attendais à ce que ce code me donne ce que je veux:
s = s.Replace("'", "\\'")
Mais cela se traduit par:
"John\\'s book."
Faites ceci pour ne pas avoir à y penser:
s = s.Replace("'", @"\'");
J'ai une fonction rapide et sale pour échapper du texte avant de l'utiliser dans une clause d'insertion mysql, cela pourrait aider:
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");
}
}
Juste pour montrer une autre solution possible si cela concerne MVC.NET (MVC5 +):
var data= JSON.parse('@Html.Raw(HttpUtility.JavaScriptStringEncode(JsonConvert.SerializeObject(Model.memberObj)))');
Cela vous permet d'échapper ET de passer des données aux vues en JavaScript. La partie clé est:
HttpUtility.JavaScriptStringEncode
Le plus simple serait
Server.HtmlEncode(varYourString);