Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL कैरेक्टर एन्कोडिंग समस्या को कैसे हल करें?

MySQL वर्ण एन्कोडिंग समस्या वह जगह है जहाँ आपका MySQL डेटाबेस UTF8 वर्णों (जैसे , ä और ö) को गलत तरीके से प्रदर्शित करने का कारण बनता है। ऐसा इसलिए है क्योंकि डिफ़ॉल्ट रूप से, MySQL latin1 कैरेक्टर सेट का उपयोग करता है। यह समस्या इन दिनों वेब सामग्री की वैश्विक प्रकृति के कारण महत्वपूर्ण हो गई है। आप इसे MySQL कैरेक्टर एन्कोडिंग को UTF8 पर सेट करके हल कर सकते हैं। यह कई तरीकों से किया जा सकता है।

  1. प्रत्येक कनेक्शन की शुरुआत में "सेट नाम 'utf8'" एक क्वेरी चलाएँ - यह MySQL को उस कनेक्शन के जीवनकाल के लिए UTF8 का उपयोग करने के लिए बाध्य करेगा। यह एक अच्छा विकल्प है यदि आपके पास my.cnf (linux/mac) / my.ini (windows) फ़ाइल तक पहुंच नहीं है।
  2. अपने डेटाबेस सर्वर पर my.cnf (linux/mac) / my.ini (windows) फ़ाइल ढूंढें और संपादित करें। निम्न पंक्तियों को mysqld . में जोड़ें अनुभाग:[mysqld] डिफ़ॉल्ट-वर्ण-सेट =utf8 स्किप-कैरेक्टर-सेट-क्लाइंट-हैंडशेक अब यदि आप MySQL सर्वर को पुनरारंभ करते हैं, तो MySQL वर्ण एन्कोडिंग UTF8 के लिए डिफ़ॉल्ट होना चाहिए
  3. क्या होगा यदि आपके पास पहले से ही एक डेटाबेस है? इसकी सामग्री को 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 एन्कोडिंग का उपयोग करें।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विभिन्न डेटाबेस में कॉलम चुनें

  2. MySQL में प्राथमिक कुंजी को अनदेखा करते हुए डुप्लिकेट पंक्तियों को खोजने के 7 तरीके

  3. लाइब्रेरी लोड नहीं हुई:mysql2 मणि ​​के साथ OS X 10.6 पर 'रेल सर्वर' चलाने का प्रयास करते समय libmysqlclient.16.dylib त्रुटि

  4. मैक ओएस एक्स - पर्यावरण त्रुटि:mysql_config नहीं मिला

  5. django ORM में पूछताछ करते समय मैं चार को पूर्णांक में कैसे डालूं?