संक्षिप्त उत्तर
क्लाइंट को विकल्प --default-character-set=utf8
. के साथ प्रारंभ करें :
mysql --default-character-set=utf8
आप इसे /etc/mysql/my.cnf
. में डिफ़ॉल्ट के रूप में सेट कर सकते हैं फ़ाइल।
[mysql]
default-character-set=utf8
संक्षिप्त उत्तर से काम नहीं चला, नीचे पढ़ें
ऊपर दिया गया आदेश character_set_client
. को बाध्य करता है , character_set_connection
और character_set_results
config चर utf8
होने के लिए ।
सभी वर्णसेट संबंधित कॉन्फ़िगरेशन चर के मानों की जांच करने के लिए आप चला सकते हैं:
show variables like '%char%';
character_set_database
आपको वर्तमान डेटाबेस (स्कीमा) का चरित्र सेट देता है जिसमें आप हैं। स्कीमा और टेबल डिफ़ॉल्ट रूप से character_set_server
में निर्दिष्ट वर्णसेट के साथ बनाए जाते हैं। , जब तक कि यह CREATE
. में स्पष्ट रूप से निर्दिष्ट न हो बयान।
character_set_server
my.cnf
. में बदला जा सकता है फ़ाइल:
[mysqld]
character-set-server = utf8
इसके अतिरिक्त तालिकाओं और स्तंभों का अपना वर्णसेट हो सकता है जो उनकी मूल तालिका या स्कीमा से भिन्न हो सकता है। किसी डेटाबेस में प्रत्येक तालिका और स्तंभ के मानों की विशेष रूप से जाँच करने के लिए यह उत्तर देखें:मैं कैसे देख सकता हूं कि MySQL डेटाबेस / टेबल / कॉलम कौन सा कैरेक्टर सेट करता है?
यदि आप मौजूदा तालिकाओं और स्तंभों के वर्ण सेट को बदलना चाहते हैं, तो यह उत्तर देखें:एक संपूर्ण MySQL डेटाबेस वर्णसेट और संयोजन को UTF-8 में कैसे बदलें?
सब कुछ utf8 पर सेट है, लेकिन मुझे अभी भी अजीब वर्ण दिखाई दे रहे हैं
भले ही सभी चारसेट वैरिएबल, टेबल और कॉलम utf8
. पर सेट हों , ऐसे मामले हो सकते हैं जहां आपको अपनी स्क्रीन पर अजीब वर्ण दिखाई दें। उदाहरण के लिए, हो सकता है कि किसी ने utf8
. में यूनिकोड वर्ण लिखे हों कॉलम, क्लाइंट के माध्यम से latin1
. के साथ कनेक्शन (उदाहरण के लिए mysql --default-character-set=latin1
. चलाकर ) इस मामले में आपको उसी वर्णमाला के साथ डेटाबेस से कनेक्ट करने की आवश्यकता है जैसे मान लिखे गए थे। आप सही एन्कोडिंग के माध्यम से उन्हें पुनः प्राप्त और पुनः लिख सकते हैं।
नोट :जैसा कि टिप्पणियाँ इंगित करती हैं, mysql utf8
एन्कोडिंग UTF-8 का सही और पूर्ण कार्यान्वयन नहीं है। यदि UTF-8 के पूर्ण कार्यान्वयन की आवश्यकता है, तो कोई भी utf8mb4
. का उपयोग कर सकता है वर्णसेट:
mysql --default-character-set=utf8mb4
अधिक जानकारी यहाँ:MySQL में utf8mb4 और utf8 चारसेट में क्या अंतर है?