CAST() या CONVERT() फंक्शन का उपयोग करें
MySQL क्वेरी के आउटपुट को UTF8 (विशेष रूप से utf8mb4) में बदलने के लिए CONVERT() या CAST() के साथ CONVERT() का उपयोग करें।
महत्वपूर्ण नोट
कभी भी UTF8 का उपयोग न करें। वर्तमान MySQL संस्करणों (5.5.3+) के लिए, हमेशा utf8mb4 का उपयोग करें क्योंकि utf8 एक उपनाम (alias) है और चेतावनी दे सकता है।
सिंटैक्स विकल्प
विकल्प 1: सरल CONVERT
SELECT yourColumnName1, CONVERT(yourColumnName2 USING utf8mb4) AS anyVariableName FROM yourTableName;
विकल्प 2: CAST के साथ CONVERT (बाइनरी के माध्यम से)
SELECT yourColumnName1, CONVERT(CAST(yourColumnName2 AS BINARY) USING utf8mb4) AS anyVariableName FROM yourTableName;
व्यावहारिक उदाहरण
टेबल बनाना
mysql> CREATE TABLE ConvertOutputtoUtf8Demo (
Id INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(20),
Age INT,
PRIMARY KEY(Id)
);
डेटा डालना
mysql> INSERT INTO ConvertOutputtoUtf8Demo(Name, Age) VALUES('John', 24);
mysql> INSERT INTO ConvertOutputtoUtf8Demo(Name, Age) VALUES('Larry', 21);
mysql> INSERT INTO ConvertOutputtoUtf8Demo(Name, Age) VALUES('Carol', 26);
mysql> INSERT INTO ConvertOutputtoUtf8Demo(Name, Age) VALUES('Mike', 27);
mysql> INSERT INTO ConvertOutputtoUtf8Demo(Name, Age) VALUES('Sam', 22);
क्वेरी 1: सरल CONVERT
mysql> SELECT Id, CONVERT(Name USING utf8mb4) AS ConvertToUtf8 FROM ConvertOutputtoUtf8Demo;
क्वेरी 2: CAST + CONVERT
mysql> SELECT Id, CONVERT(CAST(Name AS BINARY) USING utf8mb4) AS ConvertToUtf8 FROM ConvertOutputtoUtf8Demo;
दोनों का आउटपुट (चेतावनी के साथ)
+----+---------------+ | Id | ConvertToUtf8 | +----+---------------+ | 1 | John | | 2 | Larry | | 3 | Carol | | 4 | Mike | | 5 | Sam | +----+---------------+ 5 rows in set, 1 warning (0.00 sec)
चेतावनी के बारे में
चेतावनी इसलिए आती है क्योंकि utf8 अब utf8mb4 का उपनाम है। utf8mb4 का स्पष्ट उपयोग करके चेतावनी से बचें।
सर्वोत्तम अभ्यास
- टेबल और कॉलम को
CHARSET=utf8mb4के साथ बनाएं। - कनेक्शन कैरेक्टर सेट को
utf8mb4पर सेट करें (SET NAMES utf8mb4)। - रनटाइम रूपांतरण के बजाय स्कीमा स्तर पर सही एन्कोडिंग सुनिश्चित करें।