Κατάλογος άρθρου
- 1 Γιατί η έκφραση Emoji που εισάγεται στη βάση δεδομένων γίνεται χαρακτήρας ερωτηματικού;
- 2 Πώς να λύσετε το πρόβλημα ότι η έκφραση Emoji που εισάγεται στη βάση δεδομένων γίνεται χαρακτήρας ερωτηματικού;
- 3 Λύση προβλήματος χαρακτήρων MySQL Emoji
- 4 Πώς να τροποποιήσετε το σύνολο χαρακτήρων της βάσης δεδομένων σε utf8mb4;
Εάν η έκφραση Emoji είναι αποθηκευμένη σε κωδικοποίηση utf8Βάση δεδομένων MySQLή MariaDB, δεν μπορεί να εμφανιστεί.
Γιατί η έκφραση Emoji που εισάγεται στη βάση δεδομένων γίνεται χαρακτήρας ερωτηματικού;
Επειδή οι εκφράσεις Emoji είναι χαρακτήρες 4 byte και το σύνολο χαρακτήρων utf8 υποστηρίζει μόνο 1-3 byte χαρακτήρων, οι εκφράσεις Emoji δεν μπορούν να εγγραφούν στη βάση δεδομένων.
Πώς να λύσετε το πρόβλημα ότι η έκφραση Emoji που εισάγεται στη βάση δεδομένων γίνεται χαρακτήρας ερωτηματικού;
Υπάρχουν 2 λύσεις:
- Εισαγάγετε κείμενο με μη αυτόματο τρόπο, αντικαθιστώντας χαρακτήρες τεσσάρων byte με προσαρμοσμένους χαρακτήρες.
- τροποποιώ MySQL Σύνολο χαρακτήρων βάσης δεδομένων, αλλαγή του συνόλου χαρακτήρων της βάσης δεδομένων από utf8 σε utf8mb4, υποστήριξη χαρακτήρων 1-4 byte.
Στην πραγματικότητα, η πρώτη μέθοδος είναι υπερβολική δουλειά και δεν ενδείκνυται.
Συνιστάται να χρησιμοποιήσετε τη δεύτερη λύση, να τροποποιήσετε το σύνολο χαρακτήρων της βάσης δεδομένων MySQL.
Ξεκινώντας από την έκδοση MySQL 5.5.3, η βάση δεδομένων μπορεί να υποστηρίξει το σύνολο χαρακτήρων utf4mb8 των 4 byte και ένας χαρακτήρας μπορεί να έχει έως και 4 byte, ώστε να υποστηρίζει περισσότερα σύνολα χαρακτήρων και επίσης να αποθηκεύει εκφράσεις Emoji.
- Μετά την MySQL 5.5.3, μπορείτε βασικά να αναβαθμίσετε απρόσκοπτα στο σύνολο χαρακτήρων utf8mb4.
- Ταυτόχρονα, το utf8mb4 είναι συμβατό με το σύνολο χαρακτήρων utf8.
- Η κωδικοποίηση, η θέση και η αποθήκευση των χαρακτήρων utf8 είναι σε utf8mb4.
- Ίδιο με το σύνολο χαρακτήρων utf8, χωρίς ζημιά στα υπάρχοντα δεδομένα.
ΕξαιτίαςphpMyAdminΓια πίνακες που δημιουργήθηκαν πρόσφατα σε μια βάση δεδομένων που δημιουργήθηκε πρόσφατα, η προεπιλεγμένη κωδικοποίηση χαρακτήρων είναι:Latin1
- Αυτή η κωδικοποίηση δεν μπορεί να εισαγάγει εκφράσεις κινεζικών και emoji.
- Πρέπει να αλλάξετε την κωδικοποίηση συνόλου χαρακτήρων του συνόλου χαρακτήρων και του πίνακα της βάσης δεδομένων σε utf8mb4.
- Στη συνέχεια, επανεκκινήστε τη MySQL, μπορείτε να εισαγάγετε εκφράσεις κινεζικών και emoji.
Λύση προβλήματος χαρακτήρων MySQL Emoji
第 1 步:Τροποποιήστε το αρχείο διαμόρφωσης MySQL my.cnf
- (Ο διακομιστής Windows είναι ο my.ini,LinuxΟ διακομιστής είναι my.cnf)
- αρχείο my.cnf, συνήθως σε
/etc/mysql/my.cnf
θέση. - Πίνακας ελέγχου CWPΤο αρχείο my.cnf είναι μέσα
/etc/my.cnf
θέση.
Αφού το βρείτε, προσθέστε το ακόλουθο περιεχόμενο στα ακόλουθα τρία μέρη ▼
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
第 2 步:Επανεκκινήστε τη βάση δεδομένων MySQL
service mysqld restart
Βήμα 3: Ελέγξτε ξανά το σύνολο χαρακτήρων και εισαγάγετε ▼ στη γραμμή εντολών SQL
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Ελέγξτε εάν τα ακόλουθα ▼
Εισαγάγετε την ακόλουθη εντολή SQL ▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Ελέγξτε αν είναι ως εξής ▼
+--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci | +--------------------------+--------------------+
Αφού δημιουργήσετε μια νέα βάση δεδομένων στο phpMyAdmin, πρέπειΠροβολή κώδικα βάσης δεδομένων ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Εάν η κωδικοποίηση της βάσης δεδομένων δεν είναιutf8mb4
, πρέπει να τροποποιήσετε το σύνολο χαρακτήρων της βάσης δεδομένων σεutf8mb4
.
Πώς να τροποποιήσετε το σύνολο χαρακτήρων της βάσης δεδομένων σε utf8mb4;
Βήμα 1: Κάντε κλικ στο όνομα της τρέχουσας βάσης δεδομένων στο phpMyAdmin και, στη συνέχεια, κάντε κλικ στο SQL.
Βήμα 2: Εισαγάγετε την ακόλουθη εντολή για να τροποποιήσετε το σύνολο χαρακτήρων της βάσης δεδομένωνutf8mb4
▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
第 3 步:Επανεκκινήστε τη βάση δεδομένων MySQL
service mysqld restart
- Αυτό είναι.
Ακολουθούν μερικά παραδείγματα εντολών SQL:
Αλλάξτε το προεπιλεγμένο σύνολο χαρακτήρων και όλες τις στήλες χαρακτήρων του πίνακα στο νέο σύνολο χαρακτήρων ▼
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Εάν τροποποιήσετε μόνο το προεπιλεγμένο σύνολο χαρακτήρων του πίνακα ▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Τροποποιήστε το σύνολο χαρακτήρων ενός πεδίου ▼
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name
- 如:
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
Προβολή κωδικού πίνακα ▼
SHOW CREATE TABLE tbl_name;
Προβολή κωδικών πεδίων ▼
SHOW FULL COLUMNS FROM tbl_name;
Προβολή τρέχοντος κώδικα βάσης δεδομένων ▼
SHOW VARIABLES LIKE 'character_set_%';
- Το πακέτο προγράμματος οδήγησης mysql-connector-java υποστηρίζει μόνο utf5.1.13mb8 σε 4+
Ιστολόγιο Hope Chen Weiliang ( https://www.chenweiliang.com/ ) κοινοποίησε το "Πώς να αποθηκεύσω το Emoji στο MySQL; Εισαγάγετε τη βάση δεδομένων Πρόβλημα χαρακτήρων ερωτηματικού έκφρασης Emoji", το οποίο είναι χρήσιμο για εσάς.
Καλώς ήρθατε να μοιραστείτε τον σύνδεσμο αυτού του άρθρου:https://www.chenweiliang.com/cwl-26592.html
Καλώς ήρθατε στο κανάλι Telegram του ιστολογίου του Chen Weiliang για να λαμβάνετε τις τελευταίες ενημερώσεις!
📚 Αυτός ο οδηγός περιέχει τεράστια αξία, 🌟Αυτή είναι μια σπάνια ευκαιρία, μην τη χάσετε! ⏰⌛💨
Κοινοποιήστε και κάντε like αν σας αρέσει!
Η κοινή χρήση και τα like σας είναι το συνεχές μας κίνητρο!