अपडेट करें:
संक्षिप्त उत्तर - आपको लगभग हमेशा utf8mb4
. का उपयोग करना चाहिए चारसेट और utf8mb4_unicode_ci
मिलान।
डेटाबेस बदलने के लिए:
ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
देखें:
-
इस उत्तर पर हारून की टिप्पणी कैसे करें MySQL को UTF-8 को ठीक से हैंडल करें
-
रूपांतरण मार्गदर्शिका:https://dev.mysql. com/doc/refman/5.5/hi/charset-unicode-conversion.html
मूल उत्तर:
MySQL 4.1 और इसके बाद के संस्करण में UTF-8 का डिफ़ॉल्ट वर्ण सेट है। आप इसे अपने my.cnf
. में सत्यापित कर सकते हैं फ़ाइल, दोनों सेट करना याद रखें क्लाइंट और सर्वर (default-character-set
और character-set-server
)।
यदि आपके पास मौजूदा डेटा है जिसे आप UTF-8 में बदलना चाहते हैं, तो अपने डेटाबेस को डंप करें, और सुनिश्चित करें कि इसे UTF-8 के रूप में वापस आयात करें:
SET NAMES utf8
का उपयोग करें डेटाबेस में क्वेरी/सम्मिलित करने से पहलेDEFAULT CHARSET=utf8
का उपयोग करें नई तालिकाएँ बनाते समय- इस समय आपका MySQL क्लाइंट और सर्वर UTF-8 में होना चाहिए (देखें
my.cnf
) याद रखें कि आपके द्वारा उपयोग की जाने वाली कोई भी भाषा (जैसे PHP) UTF-8 भी होनी चाहिए। PHP के कुछ संस्करण अपने स्वयं के MySQL क्लाइंट लाइब्रेरी का उपयोग करेंगे, जो UTF-8 से अवगत नहीं हो सकते हैं।
यदि आप मौजूदा डेटा को माइग्रेट करना चाहते हैं तो पहले बैकअप लेना याद रखें! जब चीजें योजना के अनुसार नहीं होती हैं तो बहुत सी अजीब तरह से डेटा काटना हो सकता है!
कुछ संसाधन:
- पूर्ण UTF-8 माइग्रेशन (cdbaby.com)
- UTF-8 पर php फ़ंक्शन की तैयारी पर लेख (ध्यान दें कि इसमें से कुछ जानकारी पुरानी है)