Direttorju tal-Artikoli
- 1 Għaliex l-espressjoni Emoji mdaħħla fid-database tinbidel f'karattru ta' mistoqsija?
- 2 Kif issolvi l-problema li l-espressjonijiet Emoji inbidlu f'karattri ta' mistoqsija meta ddaħħlu fid-database?
- 3 Soluzzjoni tal-problema tal-karattru MySQL Emoji
- 4 Kif timmodifika s-sett ta' karattri tad-database għal utf8mb4?
Jekk l-espressjonijiet Emoji huma maħżuna f'kodifikazzjoni utf8database MySQLjew MariaDB, ma jistax jintwera.
Għaliex l-espressjoni Emoji mdaħħla fid-database tinbidel f'karattru ta' mistoqsija?
Minħabba li l-espressjonijiet Emoji huma karattri ta '4 byte, u s-sett ta' karattri utf8 jappoġġja biss karattri ta '1-3 byte, l-espressjonijiet Emoji ma jistgħux jinkitbu fid-database.
Kif issolvi l-problema li l-espressjonijiet Emoji inbidlu f'karattri ta' mistoqsija meta ddaħħlu fid-database?
Hemm 2 soluzzjonijiet:
- Daħħal it-test manwalment, filwaqt li tissostitwixxi karattri ta' erba' byte b'karattri personalizzati.
- immodifika MySQL Sett ta 'karattri tad-database, ibdel is-sett ta' karattri tad-database minn utf8 għal utf8mb4, li jappoġġja karattri ta '1-4 byte.
Fil-fatt, l-ewwel metodu jeħtieġ wisq xogħol u mhux rakkomandabbli.
Huwa rakkomandat li tuża t-tieni soluzzjoni biex timmodifika s-sett ta 'karattri tad-database MySQL.
Tibda mill-verżjoni MySQL 5.5.3, id-database tista 'tappoġġja s-sett ta' karattri utf4mb8 ta '4 byte, u karattru jista' jkollu sa 4 bytes, u għalhekk jista 'jappoġġa aktar settijiet ta' karattri u jaħżen espressjonijiet Emoji.
- Wara MySQL 5.5.3, bażikament jista 'jiġi aġġornat bla xkiel għas-sett ta' karattri utf8mb4.
- Fl-istess ħin, utf8mb4 huwa kompatibbli mas-sett ta 'karattri utf8.
- Il-kodifikazzjoni, il-pożizzjoni u l-ħażna tal-karattri utf8 huma f'utf8mb4.
- L-istess sett ta 'karattri bħal utf8 u mhux se jikkawża ħsara lid-dejta eżistenti.
Għax fiphpMyAdminGħal tabelli maħluqa ġodda f'databases maħluqa ġodda, il-kodifikazzjoni tal-karattri default hija:Latin1
- Din il-kodifikazzjoni ma tistax tiddaħħal espressjonijiet Ċiniżi u Emoji;
- Huwa meħtieġ li tinbidel is-sett ta 'karattri tad-database u l-kodifikazzjoni tas-sett ta' karattri tat-tabella għal utf8mb4;
- Imbagħad, terġa 'tibda MySQL u tista' daħħal espressjonijiet Ċiniżi u Emoji.
Soluzzjoni tal-problema tal-karattru MySQL Emoji
Pass 1:Immodifika l-fajl tal-konfigurazzjoni MySQL my.cnf
- (my.ini għal servers Windows,LinuxIs-server huwa my.cnf)
- fajl my.cnf, normalment fi
/etc/mysql/my.cnfPost. - Panel tal-Kontroll tas-CWPIl-fajl my.cnf jinsab fi
/etc/my.cnfPost.
Wara li ssibha, jekk jogħġbok żid il-kontenut li ġej fit-tliet partijiet li ġejjin ▼
[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'
Pass 2:Ibda mill-ġdid id-database MySQL
service mysqld restart
Pass 3: Iċċekkja s-sett ta 'karattri mill-ġdid u daħħal ▼ fil-linja tal-kmand SQL
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Iċċekkja jekk huwiex kif ġej ▼

Daħħal il-kmand SQL li ġej▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Iċċekkja jekk huwiex kif ġej▼
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
Wara li toħloq database ġdida f'phpMyAdmin, tridAra l-kodifikazzjoni tad-database ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Jekk il-kodifikazzjoni tad-database mhixutf8mb4, is-sett ta' karattri tad-database għandu jiġi modifikat għalutf8mb4 .
Kif timmodifika s-sett ta' karattri tad-database għal utf8mb4?
Pass 1: Ikklikkja fuq l-isem tad-database attwali f'phpMyAdmin, imbagħad ikklikkja fuq SQL.
Pass 2: Daħħal il-kmand li ġej biex timmodifika s-sett ta' karattri tad-databaseutf8mb4▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
Pass 3:Ibda mill-ġdid id-database MySQL
service mysqld restart
- Dak hu.
Hawn huma xi eżempji ta' kmand SQL:
Ibdel is-sett ta' karattri default u l-kolonni kollha tal-karattri tat-tabella għas-sett ta' karattri l-ġdid ▼
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;
Jekk timmodifika biss is-sett ta' karattri default tat-tabella▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Immodifika s-sett ta' karattri ta' qasam ▼
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;
Ara l-kodiċi tat-tabella ▼
SHOW CREATE TABLE tbl_name;
Ara l-kodifikazzjoni tal-qasam ▼
SHOW FULL COLUMNS FROM tbl_name;
Ara l-kodifikazzjoni tad-database attwali ▼
SHOW VARIABLES LIKE 'character_set_%';
- Il-pakkett tas-sewwieq mysql-connector-java jappoġġja biss utf5.1.13mb8 f'4+
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) qasmet "Kif taħżen Emoji f'MySQL? Problema biex iddaħħal karattri ta' mistoqsijiet Emoji fid-database", li tkun ta' għajnuna għalik.
Merħba biex taqsam il-link ta' dan l-artikolu:https://www.chenweiliang.com/cwl-26592.html
Biex tiftaħ aktar tricks moħbija🔑, merħba tingħaqad mal-kanal Telegram tagħna!
Share u like jekk jogħġobkom! L-ishma u l-likes tiegħek huma l-motivazzjoni kontinwa tagħna!