Το σύστημα διαχείρισης βάσεων δεδομένων Mysql, ξεκινώντας από την έκδοση 4.1, υποστηρίζει την εργασία με κωδικοποιήσεις. Τα κύρια προβλήματα με αυτά προκύπτουν κατά τη σύνδεση μιας βάσης δεδομένων με Php. Σε αυτήν την περίπτωση, η κωδικοποίηση του περιεχομένου της βάσης και η σύνδεση πρέπει να ταιριάζουν.
Οδηγίες
Βήμα 1
Σημειώστε ότι μια κοινή αιτία προβλημάτων με το Mysql είναι ότι η προεπιλεγμένη κωδικοποίηση για βάσεις δεδομένων έχει οριστεί σε latin1. Οι περισσότεροι από τους συνδεδεμένους πελάτες έχουν επίσης διαμορφωθεί για αυτό, εισάγετε δεδομένα και προβάλλετε τα αποτελέσματα χρησιμοποιώντας επίσης. Αν και αυτή η κωδικοποίηση εμφανίζει σωστά το κυριλλικό αλφάβητο, οι κωδικοί του πίνακα συμβόλων σε αυτόν δεν αντιστοιχούν στους πραγματικούς κυριλλικούς χαρακτήρες. Επομένως, η αναζήτηση και η ταξινόμηση δεδομένων μπορεί να παράγει εντελώς απρόβλεπτα αποτελέσματα.
Βήμα 2
Αλλάξτε την κωδικοποίηση της βάσης δεδομένων σε μια που εμφανίζει σωστά κυριλλικούς χαρακτήρες, για παράδειγμα, utf-8 ή cp1251. Για να γίνει αυτό, μετατρέψτε τα δεδομένα από την κωδικοποίηση Latin1 σε cp1251. Μην χρησιμοποιείτε απλή μετατροπή δεδομένων, καθώς οι κωδικοί χαρακτήρων είναι λανθασμένοι. Επομένως, πρέπει να απαλλαγείτε από τη δέσμευση κωδικοποίησης. Για να το κάνετε αυτό, μετατρέψτε τα δεδομένα και τον τύπο χαρακτήρα σε δυαδικά δεδομένα. Χρησιμοποιήστε το ερώτημα Alter table "Enter name table" t1 Change c1 c1 blob.
Βήμα 3
Εκτελέστε ένα ερώτημα για να αλλάξετε την κωδικοποίηση της βάσης δεδομένων Mysql, για αυτό χρησιμοποιήστε το ακόλουθο παράδειγμα: Αλλάξτε τον πίνακα "Εισαγάγετε το όνομα του πίνακα" t1 αλλάξτε το σετ κειμένων c1 c1 "Εισαγάγετε το όνομα της επιθυμητής κωδικοποίησης, για παράδειγμα, cp1251". Δεν αλλάζει φυσικά ούτε ένα byte δεδομένων, αλλά αλλάζει ο κανόνας σχηματισμού χαρακτήρων. Στη συνέχεια, για να αλλάξετε την κωδικοποίηση της βάσης δεδομένων, μπορείτε να χρησιμοποιήσετε ένα απλό ερώτημα μετατροπής δεδομένων.
Βήμα 4
Λάβετε υπόψη ότι όταν αλλάζετε κωδικοποιήσεις πίνακα σε ένα πεδίο που περιέχει ευρετήρια, πρέπει να τα διαγράψετε και να τα δημιουργήσετε ξανά, δηλ. ανακατασκευή σε όλους τους πίνακες βάσεων δεδομένων. Κατά τη μετάβαση σε κωδικοποίηση, βεβαιωθείτε ότι οι οπτικοί πελάτες υποστηρίζουν το unicode. Για παράδειγμα, ο πελάτης SQLyog εμφανίζει εσφαλμένα τα περιεχόμενα των πινάκων που αποθηκεύουν δεδομένα σε κωδικοποίηση utf-8.