Kuinka tallentaa Emojit MySQL:ään? Syötä tietokantaan Emoji-lauseke kysymysmerkki-merkkiongelma

Jos Emoji-lauseke on tallennettu utf8-koodaukseenMySQL-tietokantatai MariaDB, sitä ei voi näyttää.

Miksi tietokantaan syötetystä Emoji-lausekkeesta tulee kysymysmerkki?

Koska Emoji-lausekkeet ovat 4-tavuisia merkkejä ja utf8-merkistö tukee vain 1-3 tavua merkkejä, emoji-lausekkeita ei voi kirjoittaa tietokantaan.

Kuinka ratkaista ongelma, että tietokantaan syötetystä Emoji-lausekkeesta tulee kysymysmerkki?

Ratkaisuja on 2:

  1. Kirjoita teksti manuaalisesti korvaamalla nelitavuiset merkit mukautetuilla merkeillä.
  2. muuttaa MySQL Tietokannan merkistö, muuta tietokannan merkistö utf8:sta utf8mb4:ksi, tukee 1-4 tavun merkkejä.

Itse asiassa ensimmäinen menetelmä on liikaa työtä eikä sitä suositella.

On suositeltavaa käyttää toista ratkaisua, muokata MySQL-tietokannan merkistöä.

MySQL 5.5.3:sta alkaen tietokanta voi tukea 4 tavun utf8mb4-merkkijoukkoa ja merkissä voi olla enintään 4 tavua, joten se voi tukea useampia merkistöjä ja se voi myös tallentaa Emoji-lausekkeita.

  • MySQL 5.5.3:n jälkeen voit periaatteessa päivittää saumattomasti utf8mb4-merkistöön.
  • Samanaikaisesti utf8mb4 on yhteensopiva utf8-merkkijoukon kanssa.
  • Utf8-merkkien koodaus, sijainti ja tallennus ovat utf8mb4:ssä.
  • Sama kuin utf8-merkistö, ei vahingoita olemassa olevia tietoja.

JohdostaphpMyAdminÄskettäin luoduissa taulukoissa äskettäin luodussa tietokannassa oletusmerkkikoodaus on:Latin1

  • Tämä koodaus ei voi lisätä kiinalaisia ​​ja emoji-lausekkeita;
  • Sinun on vaihdettava tietokannan merkistön ja taulukon merkistökoodaukseksi utf8mb4;
  • Käynnistä sitten MySQL uudelleen ja voit lisätä kiinalaisia ​​ja emoji-lausekkeita.

MySQL Emoji -merkkiongelman ratkaisu

Vaihe 1:Muokkaa MySQL-määritystiedostoa my.cnf

  • (Windows-palvelin on my.ini,LinuxPalvelin on my.cnf)
  • my.cnf-tiedosto, yleensä sisään/etc/mysql/my.cnfasentoon.
  • CWP ohjauspaneelimy.cnf-tiedosto, joka on sisällä/etc/my.cnfasentoon.

Kun olet löytänyt sen, lisää seuraava sisältö seuraaviin kolmeen osaan ▼

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

Vaihe 2:Käynnistä MySQL-tietokanta uudelleen

service mysqld restart

Vaihe 3: Tarkista merkistö uudelleen ja kirjoita SQL-komentoriville ▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Tarkista, onko seuraavat ▼

Kuinka tallentaa Emojit MySQL:ään? Syötä tietokantaan Emoji-lauseke kysymysmerkki-merkkiongelma

Kirjoita seuraava SQL-komento▼

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

Tarkista, onko se seuraavanlainen▼

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

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

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

Kun olet luonut uuden tietokannan phpMyAdminissa, sinun onNäytä tietokantakoodi ▼

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

Jos tietokannan koodaus ei oleutf8mb4, sinun on muutettava tietokannan merkistö muotoonutf8mb4 .

Kuinka muuttaa tietokannan merkistö muotoon utf8mb4?

Vaihe 1: Napsauta nykyisen tietokannan nimeä phpMyAdminissa ja napsauta sitten SQL.

Vaihe 2: Anna seuraava komento muuttaaksesi tietokannan merkistöäutf8mb4

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

Vaihe 3:Käynnistä MySQL-tietokanta uudelleen

service mysqld restart
  • Se siitä.

Tässä on joitain esimerkkejä SQL-komennoista:

Muuta oletusmerkistö ja kaikki taulukon merkkisarakkeet uudeksi merkistöksi ▼

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;

Jos muutat vain taulukon oletusmerkkijoukkoa▼

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

Muokkaa kentän merkistöä ▼

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;

Katso taulukkokoodi ▼

SHOW CREATE TABLE tbl_name;

Näytä kenttäkoodit ▼

SHOW FULL COLUMNS FROM tbl_name;

Näytä nykyinen tietokantakoodi ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Mysql-connector-java-ohjainpaketti tukee vain utf5.1.13mb8:ää versiossa 4+

Hope Chen Weiliang -blogi ( https://www.chenweiliang.com/ ) jakoi "Kuinka tallentaa Emojit MySQL:ään? Syötä tietokantaan Emoji-lauseke kysymysmerkkimerkkiongelma", josta on sinulle apua.

Tervetuloa jakamaan tämän artikkelin linkki:https://www.chenweiliang.com/cwl-26592.html

Tervetuloa Chen Weiliangin blogin Telegram-kanavalle saadaksesi viimeisimmät päivitykset!

🔔 Saat ensimmäisenä arvokkaan "ChatGPT Content Marketing AI Toolin käyttöoppaan" kanavan ylähakemistoon! 🌟
📚 Tämä opas sisältää valtavasti arvoa, 🌟Tämä on harvinainen tilaisuus, älä missaa sitä! ⏰⌛💨
Jaa ja tykkää jos tykkäät!
Jakamasi ja tykkäyksesi ovat jatkuva motivaatiomme!

 

发表 评论

Sähköpostiosoitettasi ei julkaista. 必填 项 已 用 * 标注

Vieritä ylös