Πολλές φορές συμβαίνει ελληνικοί χαρακτήρες να είναι αποθηκευμένοι στη βάση δεδομένων με τη μορφή:
Με τα βινεµÎκΠ»Î¬ÎºÎ¹Î± κινε²Î¹Îίστε και
Αυτό το πρόβλημα είναι γνωστό και ως «double encoded UTF-8 data». Συνήθως οφείλεται σε λανθασμένο collation της βάσης δεδομένων, σε λανθασμένο encoding της εφαρμογής/ιστοσελίδας που αποθηκεύει τα δεδομένα στη βάση, σε μη ορθό migration δεδομένων από μια βάση σε άλλη κλπ.
Προκειμένου να διορθώσουμε το πρόβλημα, κάνουμε χρήση του παρακάτω SQL query μέσα από το PhpMyAdmin ή στο command line του MySQL:
1 2 3 4 |
UPDATE `db_table` SET `db_table`.`db_column` = CONVERT(CAST(CONVERT(`db_table`.`db_column` USING latin1) AS BINARY) USING utf8); |
Αντικαθιστούμε το db_table
με το όνομα του table της βάσης δεδομένων μας και το db_column
με το όνομα της στήλης(column) της βάσης που έχει τους προβληματικούς χαρακτήρες. Αφού τρέξουμε το query, οι ακαταλαβίστικοι χαρακτήρες θα μετατραπούν πάλι σε αναγνώσιμους ελληνικούς χαρακτήρες. 🙂