MySQL वर्ण एन्कोडिंग समस्या वह जगह है जहाँ आपका MySQL डेटाबेस UTF8 वर्णों (जैसे , ä और ö) को गलत तरीके से प्रदर्शित करने का कारण बनता है। ऐसा इसलिए है क्योंकि डिफ़ॉल्ट रूप से, MySQL latin1 कैरेक्टर सेट का उपयोग करता है। यह समस्या इन दिनों वेब सामग्री की वैश्विक प्रकृति के कारण महत्वपूर्ण हो गई है। आप इसे MySQL कैरेक्टर एन्कोडिंग को UTF8 पर सेट करके हल कर सकते हैं। यह कई तरीकों से किया जा सकता है।
- प्रत्येक कनेक्शन की शुरुआत में "सेट नाम 'utf8'" एक क्वेरी चलाएँ - यह MySQL को उस कनेक्शन के जीवनकाल के लिए UTF8 का उपयोग करने के लिए बाध्य करेगा। यह एक अच्छा विकल्प है यदि आपके पास my.cnf (linux/mac) / my.ini (windows) फ़ाइल तक पहुंच नहीं है।
- अपने डेटाबेस सर्वर पर my.cnf (linux/mac) / my.ini (windows) फ़ाइल ढूंढें और संपादित करें। निम्न पंक्तियों को mysqld . में जोड़ें अनुभाग:[mysqld] डिफ़ॉल्ट-वर्ण-सेट =utf8 स्किप-कैरेक्टर-सेट-क्लाइंट-हैंडशेक अब यदि आप MySQL सर्वर को पुनरारंभ करते हैं, तो MySQL वर्ण एन्कोडिंग UTF8 के लिए डिफ़ॉल्ट होना चाहिए
- क्या होगा यदि आपके पास पहले से ही एक डेटाबेस है? इसकी सामग्री को UTF8 में कैसे बदलें? आप निम्नलिखित 3 प्रश्नों का उपयोग कर सकते हैं। DATABASE_NAME, TABLE_NAME और FIELD_NAME को अपने मानों से बदलें। तालिका बदलें TABLE_NAME FIELD_NAME ब्लॉब संशोधित करें; डेटाबेस बदलें DATABASE_NAME charset=utf8; तालिका बदलें TABLE_NAME FIELD_NAME संशोधित करें varchar(255) वर्ण सेट utf8; फ़ील्ड को BLOB में बदलें, यह एक बाइनरी फ़ील्ड प्रकार है। फिर हम डेटाबेस के कैरेक्टर सेट को utf8 में बदलते हैं। अंत में हम अपने क्षेत्र को वापस टेक्स्ट या वर्चर में बदल देते हैं।
आप निम्न क्वेरी के साथ अपने MySQL वर्ण एन्कोडिंग की जांच कर सकते हैं।
डिफ़ॉल्ट MySQL वर्ण एन्कोडिंग
mysql> show variables like 'char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | latin1 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
आवश्यक MySQL वर्ण एन्कोडिंग
mysql> show variables like 'char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
आपको यह भी सुनिश्चित करना होगा कि आपके प्रोग्रामिंग ढांचे जैसे Django, कोड इग्नाइटर, आदि UTF8 एन्कोडिंग का उपयोग करें।