Nola gorde Emoji MySQL-en? Sartu datu-basean Emoji adierazpenaren galdera-markaren arazoa

Emoji adierazpena utf8 kodetzean gordetzen badaMySQL datu-baseaedo MariaDB, ezin da bistaratu.

Zergatik bihurtzen da datu-basean sartutako Emoji adierazpena galdera-ikur karaktere?

Emoji adierazpenak 4 byteko karaktereak direnez eta utf8 karaktere multzoak karaktere 1-3 byte baino ez dituelako onartzen, Emoji adierazpenak ezin dira datu-basean idatzi.

Nola konpondu datu-basean sartutako Emoji adierazpena galdera-ikur karaktere bihurtzen den arazoa?

2 irtenbide daude:

  1. Idatzi testua eskuz, lau byteko karaktereak karaktere pertsonalizatuekin ordezkatuz.
  2. Berrikusi MySQL Datu-baseko karaktere-multzoa, aldatu datu-baseko karaktere-multzoa utf8-tik utf8mb4-ra, 1-4 byte-ko karaktereak onartzen ditu.

Izan ere, lehen metodoa lan gehiegi da eta ez da komeni.

Bigarren irtenbidea erabiltzea gomendatzen da, MySQL datu-baseko karaktere multzoa aldatzea.

MySQL 5.5.3 bertsiotik hasita, datu-baseak 4 byteko utf8mb4 karaktere-multzoa onar dezake, eta karaktere batek 4 byte izan ditzake, beraz, karaktere-multzo gehiago onar ditzake eta Emoji adierazpenak ere gorde ditzake.

  • MySQL 5.5.3-ren ondoren, funtsean, utf8mb4 karaktere-jokora berritu dezakezu.
  • Aldi berean, utf8mb4 utf8 karaktere multzoarekin bateragarria da.
  • Utf8 karaktereen kodeketa, kokapena eta biltegiratzea utf8mb4-n daude.
  • Utf8 karaktere multzoaren berdina, lehendik dauden datuei kalterik ez.

OndoriozphpMyAdminSortu berri diren datu-base batean sortu berri diren tauletarako, karaktereen kodetze lehenetsia hau da:Latin1

  • Kodetze honek ezin ditu txinera eta emoji esamoldeak txertatu;
  • Datu-baseko karaktere-multzoaren eta taularen karaktere-multzoaren kodeketa utf8mb4-ra aldatu behar duzu;
  • Ondoren, berrabiarazi MySQL, txinera eta Emoji esamoldeak txerta ditzakezu.

MySQL Emoji karaktereen arazoaren konponbidea

步 1:Aldatu MySQL konfigurazio fitxategia my.cnf

  • (Windows zerbitzaria my.ini da,LinuxZerbitzaria my.cnf da)
  • my.cnf fitxategia, normalean/etc/mysql/my.cnfposizioa.
  • CWP Kontrol Panelamy.cnf fitxategia barruan dago/etc/my.cnfposizioa.

Aurkitu ondoren, gehitu eduki hau hurrengo hiru zatietan ▼

[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:Berrabiarazi MySQL datu-basea

service mysqld restart

3. urratsa: egiaztatu karaktere multzoa berriro eta idatzi ▼ SQL komando-lerroan

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Egiaztatu hurrengo ▼

Nola gorde Emoji MySQL-en? Sartu datu-basean Emoji adierazpenaren galdera-markaren arazoa

Sartu hurrengo SQL komandoa▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

Egiaztatu hurrengoa den▼

 +--------------------------+--------------------+

| 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-en datu-base berri bat sortu ondoren, behar duzuIkusi datu-basearen kodea ▼

SHOW CREATE DATABASE db_name;
  • 如:SHOW CREATE DATABASE test;

Datu-basearen kodeketa ez badautf8mb4, datu-baseko karaktere multzoa aldatu behar duzuutf8mb4 .

Nola aldatu datu-baseko karaktere multzoa utf8mb4-ra?

1. urratsa: Egin klik uneko datu-basearen izena phpMyAdmin-en, eta egin klik SQL.

2. urratsa: Sartu komando hau datu-baseko karaktere multzoa aldatzekoutf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • 如:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

步 3:Berrabiarazi MySQL datu-basea

service mysqld restart
  • Hori da.

Hona hemen SQL komandoen adibide batzuk:

Aldatu karaktere-multzo lehenetsia eta taulako karaktere-zutabe guztiak karaktere-multzo berrira ▼

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;

Taularen karaktere multzo lehenetsia soilik aldatzen baduzu▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Aldatu eremu baten karaktere multzoa ▼

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;

Ikusi taularen kodea ▼

SHOW CREATE TABLE tbl_name;

Ikusi eremu-kodeak ▼

SHOW FULL COLUMNS FROM tbl_name;

Ikusi uneko datu-basearen kodea ▼

SHOW VARIABLES LIKE 'character_set_%';
  • mysql-connector-java kontrolatzaile paketeak utf5.1.13mb8 bakarrik onartzen du 4+ bertsioan

Hope Chen Weiliang bloga ( https://www.chenweiliang.com/ ) partekatu du "Nola gorde Emoji MySQL-en? Sartu datu-basean Emoji adierazpenaren galdera-markaren arazoa", eta hori lagungarria zaizu.

Ongi etorri artikulu honen esteka partekatzera:https://www.chenweiliang.com/cwl-26592.html

Ongi etorri Chen Weiliang-en blogeko Telegram kanalera azken eguneraketak jasotzeko!

🔔 Izan zaitez kanalaren goiko direktorioan "ChatGPT Content Marketing AI Tool Erabilera Gida" baliotsua lortzen lehena! 🌟
📚 Gida honek balio handia du, 🌟Aukera arraroa da hau, ez galdu! ⏰⌛💨
Partekatu eta gustatzen bazaizu!
Zure partekatzea eta gustukoak dira gure etengabeko motibazioa!

 

发表 评论

Zure helbide elektronikoa ez da argitaratuko. 必填 项 已 用 * 标注

joan goian