कहो पीएचपी भेजता MySQL के लिए कुछ पाठ संग्रहीत करने के लिए, की तरह
INSERT INTO `some_table` ("foo") VALUES
('The quick brown fox jumps over the lazy dog');
कुछ इस क्वेरी के बुनियादी इरादे जाहिर स्ट्रिंग जल्दी भूरी लोमड़ी आलसी कुत्ते पर कूदता है स्टोर करने के लिए MySQL बताने के लिए है डेटाबेस में
यदि PHP यूटीएफ -8 का उपयोग करने के लिए कॉन्फ़िगर किया गया है, तो इसका मतलब है कि जब यह मानव पठनीय पात्रों को बाइनरी में परिवर्तित करता है - इसे MySQL पर प्रेषित करने के लिए - यह यूटीएफ -8 एन्कोडिंग सिस्टम का उपयोग कर वर्णों को परिवर्तित करेगा।
MySQL यूटीएफ -8 में एन्कोड किए गए अक्षरों को पढ़ सकता है और इसलिए यह समझने में कोई समस्या नहीं है कि डिजिटल पठनीय पात्रों में डिजिटल रूप से एन्कोडेड अनुक्रम T
और h
और e
आदि का मतलब है।
MySQL latin1 का उपयोग कर some_table
तालिका में डेटा संग्रहीत करने के लिए कॉन्फ़िगर किया गया है, जब यह स्ट्रिंग प्राप्त करता है, यह पात्रों को उनके UTF-8 latin1 समकक्ष एन्कोडिंग से परिवर्तित कर देंगे पूर्व harddisk करने के लिए डेटा को बचाने के लिए।
इस मामले में कोई समस्या नहीं है - क्योंकि अंग्रेजी वर्णमाला वर्णों को यूटीएफ -8 और लैटिन 1 दोनों द्वारा दर्शाया जा सकता है।
हालांकि, समस्या तब होती है जब स्ट्रिंग PHP ने निहित वर्ण भेजे हैं जिन्हें केवल यूटीएफ -8 द्वारा प्रदर्शित किया जा सकता है और लैटिन 1 नहीं, उदाहरण के लिए एक स्मार्ट उद्धरण “
। जब MySQL स्मार्ट कोट “
को डिजिटल रूप में परिवर्तित करने का प्रयास करता है, तो यह सक्षम नहीं होगा - क्योंकि लैटिन 1 में सचमुच “
का प्रतिनिधित्व करने के लिए परिभाषित कोई डिजिटल एन्कोडिंग नहीं है।
मुझे यकीन नहीं है कि MySQL की सटीक त्रुटि प्रबंधन प्रक्रिया तब होती है जब यह इस स्थिति से मुकाबला करती है, और क्या स्थिति पुनर्प्राप्त करने योग्य है, लेकिन आम तौर पर अंतिम परिणाम यह है कि अंतर्निहित एन्कोडिंग दूषित और अनुपयोगी होगी।
क्योंकि यह समस्या केवल उन पात्रों के लिए होती है जिन्हें दो प्रणालियों द्वारा प्रदर्शित नहीं किया जा सकता है - और यदि आपके सभी संचारों में से 99% अंग्रेजी वर्णों को शामिल करते हैं, तो आपको थोड़ी देर के लिए कोई समस्या नहीं दिखाई दे सकती है और फिर भी यह कभी-कभी कभी-कभी होगी चरित्र, लेकिन जब आप नोटिस की समस्या करते हैं तो ठीक होने की कोशिश कर निराशाजनक हो सकती है।
स्रोत
2015-12-25 11:55:38
इतने सारे। सबसे विदेशी भाषाएं। यदि आप इसे पढ़ने के इच्छुक हैं http://htmlpurifier.org/docs/enduser-utf8.html#whyutf8 – devpro