CONVERT() और BINARY का उपयोग करके एन्कोडिंग ठीक करना
गलत एन्कोडिंग (जैसे लैटिन1 में स्टोर UTF-8 डेटा) को ठीक करने के लिए:
SELECT CONVERT(BINARY CONVERT(yourColumnName USING latin1) USING utf8) AS alias FROM yourTableName;
उदाहरण: टेबल बनाना और गलत एन्कोडेड डेटा डालना
mysql> CREATE TABLE UtfDemo (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(15),
-> PRIMARY KEY(Id)
-> );
mysql> INSERT INTO UtfDemo(Name) VALUES('Obama’s'),('John’s'),('Carol’s'),('Sam’s');
गलत एन्कोडेड डेटा
mysql> SELECT * FROM UtfDemo;
+----+----------------+ | Id | Name | +----+----------------+ | 1 | Obama’s | | 2 | John’s | | 3 | Carol’s | | 4 | Sam’s | +----+----------------+
UTF-8 में कन्वर्ट करना
mysql> SELECT CONVERT(BINARY CONVERT(Name USING latin1) USING utf8) AS ListOfName
-> FROM UtfDemo;
आउटपुट:
+------------+ | ListOfName | +------------+ | Obama's | | John's | | Carol's | | Sam's | +------------+
व्याख्या: पहले latin1 के रूप में इंटरप्रेट करें (बाइनरी बाइट्स के रूप में), फिर utf8 में कन्वर्ट करें।