Εάν έχετε αλλάξει τη φιλοξενία ιστού ή αλλάξετε τη βάση δεδομένων για το ιστολόγιό σας WordPress, μπορεί να αντιμετωπίσετε ένα θέμα όπου ξένοι χαρακτήρες δεν εμφανίζονται σωστά στον ιστότοπό σας. Αντί για τους ξένους χαρακτήρες, θα δείτε στη θέση τους πολλά ερωτηματικά (???). Σε αυτό το άρθρο, θα σας δείξουμε πώς να διορθώσετε αυτό το πρόβλημα και να δείξετε την κατάλληλη γλώσσα χωρίς να χάσετε οποιαδήποτε δεδομένα.

Τι είναι η κωδικοποίηση χαρακτήρων;

Πριν πάμε στις αιτίες και τις λύσεις αυτού του προβλήματος, πρέπει να είμαστε σαφείς σχετικά με την κωδικοποίηση χαρακτήρων. Λέξεις και προτάσεις σε οποιαδήποτε γλώσσα αποτελούνται από χαρακτήρες. Αυτοί οι χαρακτήρες ομαδοποιούνται σε σύνολα χαρακτήρων. Κάθε χαρακτήρας αποθηκεύεται στη μνήμη του υπολογιστή χρησιμοποιώντας ένα δυαδικό κώδικα. Χρησιμοποιώντας αυτόν τον κώδικα, ο υπολογιστής μπορεί να αποκωδικοποιήσει τον πραγματικό χαρακτήρα. Αυτός ο δυαδικός κωδικός ονομάζεται κωδικοποίηση χαρακτήρων.

Οι διαφορετικές γλώσσες χρησιμοποιούν διαφορετικούς κωδικούς για να αναφερθούν σε διαφορετικούς χαρακτήρες. Ο ίδιος κώδικας σε δύο γλώσσες μπορεί να σημαίνει εντελώς διαφορετικούς χαρακτήρες. Αυτό αποφασίζεται από ποια κωδικοποίηση χαρακτήρων χρησιμοποιείται από τον υπολογιστή.

Μπορεί να δείτε μερικά από τα σύνολα χαρακτήρων στα W3Schools που χρησιμοποιούνται στο Internet. Προχωρήστε στη Βικιπαίδεια για το πλήρες σετ χαρακτήρων.

Είδες ??? στο blog του WordPress;

Μπορεί να υπάρχουν μερικές αιτίες που οδηγούν στην εμφάνιση λανθασμένων χαρακτήρων. Πρώτα απ 'όλα, πρέπει να βεβαιωθείτε ότι χρησιμοποιείτε το ίδιο σύνολο χαρακτήρων στο αρχείο wp-config.php. Αναζητήστε την παρακάτω γραμμή και βεβαιωθείτε ότι δεν έχει σχολιαστεί:

 ορισμός ('DB_CHARSET', 'utf8'); 

Δεύτερον, πρέπει να ελέγξετε αν το θέμα σας χρησιμοποιεί το σύνολο χαρακτήρων που έχει οριστεί στο αρχείο wp-config.php. Αναζητήστε την παρακάτω γραμμή στο HTML:

Τέλος, πρέπει να ελέγξετε ότι το περιεχόμενο της βάσης δεδομένων σας είναι αποθηκευμένο με την ίδια κωδικοποίηση χαρακτήρων που χρησιμοποιείτε στο αρχείο wp-config.php και στο HTML. Αν χρησιμοποιείτε το phpMyAdmin για τη διαχείριση της βάσης δεδομένων σας, θα μπορείτε να δείτε την τρέχουσα ταξινόμηση του διακομιστή στις Γενικές ρυθμίσεις.

Η αλλαγή του συνόλου χαρακτήρων της πλήρους βάσης δεδομένων WordPress δεν είναι εύκολη υπόθεση και θα πρέπει να γίνει με πολλή προσοχή. Ακολουθούν τα βήματα για τη μετατροπή μιας βάσης δεδομένων στο σύνολο χαρακτήρων που έχετε επιλέξει.

1. Πρώτα από όλα, πρέπει να ελέγξουμε το τρέχον σύνολο χαρακτήρων της βάσης δεδομένων. Ακολουθεί το ερώτημα SQL για έλεγχο:

 ΔΕΙΞΤΕ ΜΕΤΑΒΛΗΤΕΣ ΜΕΤΑΦΟΡΑΣ "character_set_database"; 

2. Εάν το σετ χαρακτήρων δεν είναι αυτό που θέλετε, θα πρέπει να κάνετε αντίγραφο ασφαλείας της βάσης δεδομένων σας προτού προχωρήσετε περαιτέρω.

3. Εκτελέστε το ακόλουθο ερώτημα SQL για να αλλάξετε το σύνολο χαρακτήρων της πλήρους βάσης δεδομένων:

 ALTER DATABASE Ορισμός MyDb CHARACTER SET utf8; 

Αλλάξτε το "MyDB" στο όνομα της βάσης δεδομένων σας.

4. Μετατρέψτε τώρα τον πίνακα "wp-posts" στην κωδικοποίηση χαρακτήρων που θέλετε:

 ΠΙΝΑΚΑΣ ALTER wp_posts ΧΑΡΑΚΤΗΡΙΣΜΟΣ SET utf8; 

Αλλάξτε το "wp_" αν χρησιμοποιείτε διαφορετικό πρόθεμα.

Αυτά τα βήματα θα αφαιρέσουν τα ερωτηματικά ή άλλους παράξενους χαρακτήρες και θα εμφανίσουν τους κατάλληλους ξένους χαρακτήρες. Εάν έχετε πολλές στήλες στη βάση δεδομένων WordPress που έχουν οριστεί σε προσαρμοσμένο σύνολο χαρακτήρων, θα χρειαστεί να αλλάξετε το σύνολο χαρακτήρων κάθε στήλης ένα προς ένα.

Δεδομένου ότι το UTF-8 είναι η συνηθέστερα χρησιμοποιούμενη κωδικοποίηση χαρακτήρων, αν το blog σας χρησιμοποιεί κάποια άλλη κωδικοποίηση χαρακτήρων και θέλετε να το αλλάξετε σε UTF-8, μπορείτε να χρησιμοποιήσετε το plugin που ονομάζεται μετατροπέας UTF-8 DB. Παρόλο που δεν έχει ενημερωθεί εδώ και πολύ καιρό, θα είναι σε θέση να κάνει αποτελεσματικά το έργο της. Λάβετε υπόψη ότι εάν έχετε μια μεγάλη βάση δεδομένων, η μετατροπή του συνόλου χαρακτήρων θα διαρκέσει πολύ.

Πείτε μας για την εμπειρία σας αν έχετε το ίδιο πρόβλημα.