Kiel konservi Emoji en MySQL?Enigu la datumbazon Emoji-esprimo demandosigno signo problemo

Se la Emoji-esprimo estas konservita en utf8-kodigoMySQL-datumbazoaŭ MariaDB, ĝi ne povas esti montrata.

Kial la Emoji-esprimo enigita en la datumbazon fariĝas demandosigno?

Ĉar Emoji-esprimoj estas 4-bajtaj signoj, kaj la utf8-aro nur subtenas 1-3-bajtojn da signoj, Emoji-esprimoj ne povas esti skribitaj en la datumbazon.

Kiel solvi la problemon, ke la Emoji-esprimo enigita en la datumbazon fariĝas demandosigno?

Estas 2 solvoj:

  1. Enigu tekston permane, anstataŭigante kvar-bajtajn signojn per kutimaj signoj.
  2. modifi MySQL Datumbaza signaro, ŝanĝu la datumbazan signaron de utf8 al utf8mb4, subtenu 1-4 bajtajn signojn.

Fakte, la unua metodo estas tro da laboro kaj ne estas konsilinda.

Oni rekomendas uzi la duan solvon, modifi la datumbazan signaron de MySQL.

Komencante de MySQL 5.5.3-versio, la datumbazo povas subteni la utf4mb8 signaron de 4 bajtoj, kaj karaktero povas havi ĝis 4 bajtojn, do ĝi povas subteni pli da signoroj, kaj ankaŭ povas stoki Emoji-esprimojn.

  • Post MySQL 5.5.3, vi povas esence perfekte ĝisdatigi al la utf8mb4 signaro.
  • Samtempe, utf8mb4 estas kongrua kun la utf8 signaro.
  • La kodigado, pozicio kaj konservado de utf8-signoj estas en utf8mb4.
  • Same kiel utf8-karaktero, neniu damaĝo al ekzistantaj datumoj.

ProphpMyAdminPor lastatempe kreitaj tabeloj en lastatempe kreita datumbazo, la defaŭlta signokodigo estas:Latin1

  • Ĉi tiu kodado ne povas enmeti ĉinajn kaj Emoji-esprimojn;
  • Vi devas ŝanĝi la signaron-kodigon de la datumbaza signaro kaj tabelo al utf8mb4;
  • Poste, rekomencu MySQL, vi povas enmeti ĉinajn kaj Emoji-esprimojn.

Solvo de problemo de MySQL Emoji-karaktero

paŝo 1:Modifi la MySQL-agordan dosieron my.cnf

  • (Vindoza servilo estas my.ini,linuxLa servilo estas my.cnf)
  • my.cnf dosiero, kutime en/etc/mysql/my.cnfpozicio.
  • CWP KontrolpaneloLa my.cnf dosiero, estas en/etc/my.cnfpozicio.

Post kiam vi trovas ĝin, bonvolu aldoni la sekvan enhavon en la sekvaj tri partoj ▼

[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'

paŝo 2:Rekomencu la MySQL-datumbazon

service mysqld restart

Paŝo 3: Kontrolu la signaron denove kaj enigu ▼ en la SQL-komandlinio

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Kontrolu ĉu la sekvaj ▼

Kiel konservi Emoji en MySQL?Enigu la datumbazon Emoji-esprimo demandosigno signo problemo

Enigu la sekvan SQL-komandon▼

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

Kontrolu ĉu ĝi estas kiel sekvas▼

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

| 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 |

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

Post kreado de nova datumbazo en phpMyAdmin, vi devasRigardu datumbazan kodon ▼

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

Se la datumbaza kodado ne estasutf8mb4, vi devas modifi la datumbazan signaron alutf8mb4 .

Kiel modifi la datumbazan signaron al utf8mb4?

Paŝo 1: Alklaku la nunan datumbazan nomon en phpMyAdmin, tiam alklaku SQL.

Paŝo 2: Enigu la sekvan komandon por modifi la datumbazan signaron alutf8mb4

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

paŝo 3:Rekomencu la MySQL-datumbazon

service mysqld restart
  • Jen ĝi.

Jen kelkaj ekzemploj de SQL-komandoj:

Ŝanĝu la defaŭltan signaron kaj ĉiujn signarkolumnojn de la tabelo al la nova signoaro ▼

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • Kiel:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Se vi nur modifas la defaŭltan signaron de la tabelo▼

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

Modifi la signaron de kampo ▼

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name 
  • Kiel:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

Vidu tabelkodon ▼

SHOW CREATE TABLE tbl_name;

Rigardu Kampajn Kodojn ▼

SHOW FULL COLUMNS FROM tbl_name;

Vidi nunan datumbazan kodon ▼

SHOW VARIABLES LIKE 'character_set_%';
  • La mysql-connector-java-ŝoforpakaĵo nur subtenas utf5.1.13mb8 en 4+

Hope Chen Weiliang Blogo ( https://www.chenweiliang.com/ ) konigis "Kiel konservi Emoji en MySQL? Enigu la datumbazon Emoji-esprimo demandosigno signo problemo", kiu estas helpema al vi.

Bonvenon dividi la ligon de ĉi tiu artikolo:https://www.chenweiliang.com/cwl-26592.html

Bonvenon al la Telegram-kanalo de la blogo de Chen Weiliang por ricevi la plej novajn ĝisdatigojn!

🔔 Estu la unua ricevi la valoran "ChatGPT Content Marketing AI Tool Use Guide" en la ĉefa dosierujo de la kanalo! 🌟
📚 Ĉi tiu gvidilo enhavas grandegan valoron, 🌟Ĉi tio estas malofta ŝanco, ne maltrafu ĝin! ⏰⌛💨
Kunhavigu kaj ŝatu se vi ŝatas!
Via kundivido kaj ŝatoj estas nia kontinua instigo!

 

Lasu komenton

Via retpoŝta adreso ne estos publikigita. Bezonataj kampoj estas uzataj * Etikedo

rulumu al la supro