Når jeg bruger php/mysql/jquery til at sende data frem og tilbage, ender jeg med at bruge følgende kombination af kodninger/escapes, og det ser ud til at fungere godt for mig.
1) du behøver ikke at gøre noget her, MEDMINDRE du sender en URL (jeg tror, dette kun er til GET-anmodninger) - men hvis du sender en url, skal du bruge encodeURIComponent(url), som vil undslippe korrekt &'erne og specialtegnene i url'en (se mere her ).
2) Brug mysqli og bundne parametre, det vil gøre alt for at slippe for dig (læs om det her a> )
3) Jeg bruger altid dette, når jeg ekko data til en HTML-fil :
<?php
htmlspecialchars($string_to_escape, ENT_QUOTES, 'UTF-8', false);
?>
Dette vil korrekt kode alle specialtegn (falsk er for "ingen dobbeltkodning"). Sørg også for at du har de rigtige UTF-8-metatags øverst på dine HTML-sider.
4) Brug af json_encode bør altid undslippe dine data korrekt, men jeg ville bruge koden fra #3 bare for at være sikker. Men du får sandsynligvis kun brug for det, hvis du returnerer data med specialtegn.