जब भी मैं डेटा को आगे और आगे पास करने के लिए php/mysql/jquery का उपयोग करता हूं, तो मैं एन्कोडिंग/एस्केपिंग के निम्नलिखित संयोजन का उपयोग कर समाप्त होता हूं, और ऐसा लगता है कि यह मेरे लिए अच्छा काम करता है।
1) आपको यहां कुछ भी करने की आवश्यकता नहीं है, जब तक आप एक यूआरएल नहीं भेज रहे हैं (मुझे लगता है कि यह केवल जीईटी अनुरोधों के लिए है) - लेकिन अगर आप एक यूआरएल भेज रहे हैं तो आपको एन्कोडुरिकंपोनेंट (यूआरएल) का उपयोग करने की आवश्यकता है, जो ठीक से बच जाएगा url में &'s और विशेष वर्ण (अधिक देखें यहां )।
2) mysqli और बाउंड पैरामीटर का उपयोग करें, यह आपके लिए सभी एस्केपिंग करेगा (इसके बारे में पढ़ें यहां ए> )
3) HTML फ़ाइल में डेटा को प्रतिध्वनित करते समय मैं हमेशा इसका उपयोग करता हूँ:
<?php
htmlspecialchars($string_to_escape, ENT_QUOTES, 'UTF-8', false);
?>
यह सभी विशेष वर्णों को ठीक से एन्कोड करेगा (झूठा "कोई डबल एन्कोडिंग नहीं" के लिए है)। यह भी सुनिश्चित करें कि आप अपने html पृष्ठों के शीर्ष पर उचित UTF-8 मेटा टैग हैं।
4) json_encode का उपयोग करना हमेशा आपके डेटा से ठीक से बच जाना चाहिए, लेकिन मैं सिर्फ यह सुनिश्चित करने के लिए #3 से कोड का उपयोग करूंगा। लेकिन आपको इसकी आवश्यकता केवल तभी होगी जब आप इसमें विशेष वर्णों वाला डेटा लौटा रहे हों।