MySQL डेटाबेस प्रबंधन प्रणाली, संस्करण 4.1 से शुरू होकर, एन्कोडिंग के साथ काम करने का समर्थन करती है। डेटाबेस को Php से जोड़ते समय उनके साथ मुख्य समस्याएँ उत्पन्न होती हैं। इस मामले में, आधार और कनेक्शन की सामग्री का एन्कोडिंग मेल खाना चाहिए।
निर्देश
चरण 1
ध्यान दें कि मैसकल के साथ समस्याओं का एक सामान्य कारण यह है कि डेटाबेस के लिए डिफ़ॉल्ट एन्कोडिंग लैटिन 1 पर सेट है। अधिकांश जुड़े हुए क्लाइंट भी इसके लिए कॉन्फ़िगर किए गए हैं, आप डेटा दर्ज करते हैं और इसका उपयोग करके परिणाम भी देखते हैं। यद्यपि यह एन्कोडिंग सिरिलिक वर्णमाला को सही ढंग से प्रदर्शित करता है, इसमें प्रतीक तालिका के कोड वास्तविक सिरिलिक वर्णों के अनुरूप नहीं हैं। इसलिए, डेटा खोजना और सॉर्ट करना पूरी तरह से अप्रत्याशित परिणाम उत्पन्न कर सकता है।
चरण 2
डेटाबेस एन्कोडिंग को एक में बदलें जो सिरिलिक वर्णों को सही ढंग से प्रदर्शित करता है, उदाहरण के लिए, utf-8 या cp1251। ऐसा करने के लिए, डेटा को लैटिन1 एन्कोडिंग से cp1251 में बदलें। साधारण डेटा रूपांतरण का उपयोग न करें, क्योंकि वर्ण कोड गलत हैं। इसलिए, आपको उनके एन्कोडिंग बाइंडिंग से छुटकारा पाने की आवश्यकता है। ऐसा करने के लिए, डेटा और वर्ण प्रकार को बाइनरी डेटा में बदलें। क्वेरी का उपयोग करें तालिका बदलें "तालिका का नाम दर्ज करें" t1 परिवर्तन c1 c1 ब्लॉब।
चरण 3
MySQL डेटाबेस के एन्कोडिंग को बदलने के लिए एक क्वेरी चलाएँ, इसके लिए निम्न उदाहरण का उपयोग करें: तालिका बदलें "तालिका का नाम दर्ज करें" t1 परिवर्तन c1 c1 टेक्स्ट चैटैक्टर सेट "वांछित एन्कोडिंग का नाम दर्ज करें, उदाहरण के लिए, cp1251"। डेटा का एक भी बाइट भौतिक रूप से नहीं बदला जाता है, लेकिन वर्ण बनाने का नियम बदल जाता है। इसके बाद, डेटाबेस एन्कोडिंग को बदलने के लिए, आप एक साधारण डेटा रूपांतरण क्वेरी का उपयोग कर सकते हैं।
चरण 4
कृपया ध्यान दें कि इंडेक्स वाले फ़ील्ड में टेबल एन्कोडिंग बदलते समय, आपको उन्हें हटाना होगा और उन्हें फिर से बनाना होगा, यानी। सभी डेटाबेस तालिकाओं में पुनर्निर्माण करें। एन्कोडिंग पर स्विच करते समय, सुनिश्चित करें कि विज़ुअल क्लाइंट यूनिकोड का समर्थन करते हैं। उदाहरण के लिए, SQLyog क्लाइंट तालिका की सामग्री को गलत तरीके से प्रदर्शित करता है जो डेटा को utf-8 एन्कोडिंग में संग्रहीत करता है।