Artikkelihakemisto
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:
- Kirjoita teksti manuaalisesti korvaamalla nelitavuiset merkit mukautetuilla merkeillä.
- 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.cnf
asentoon. - CWP ohjauspaneelimy.cnf-tiedosto, joka on sisällä
/etc/my.cnf
asentoon.
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 ▼
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!
📚 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!