Adresář článků
Pokud je výraz Emoji uložen v kódování utf8MySQL databázenebo MariaDB, nelze jej zobrazit.
Proč se výraz Emoji zadaný do databáze stane znakem otazníku?
Protože výrazy Emoji jsou 4bajtové znaky a znaková sada utf8 podporuje pouze 1–3 bajty znaků, nelze výrazy Emoji zapsat do databáze.
Jak vyřešit problém, že se z výrazu Emoji zadaného do databáze stane znak otazníku?
Existují 2 řešení:
- Zadejte text ručně a nahraďte čtyřbajtové znaky vlastními znaky.
- upravit MySQL Znaková sada databáze, změna znakové sady databáze z utf8 na utf8mb4, podpora 1-4 bajtových znaků.
Ve skutečnosti je první metoda příliš pracná a není vhodná.
Doporučuje se použít druhé řešení, upravit znakovou sadu databáze MySQL.
Počínaje verzí MySQL 5.5.3 může databáze podporovat znakovou sadu utf4mb8 o 4 bajtech a znak může mít až 4 bajty, takže může podporovat více znakových sad a také může ukládat výrazy Emoji.
- Po MySQL 5.5.3 můžete v podstatě bez problémů upgradovat na znakovou sadu utf8mb4.
- Zároveň je utf8mb4 kompatibilní se znakovou sadou utf8.
- Kódování, pozice a ukládání znaků utf8 jsou v utf8mb4.
- Stejné jako znaková sada utf8, žádné poškození stávajících dat.
KvůliphpMyAdminPro nově vytvořené tabulky v nově vytvořené databázi je výchozí kódování znaků:Latin1
- Toto kódování nemůže vložit čínské výrazy a výrazy Emoji;
- Musíte změnit kódování znakové sady znakové sady a tabulky databáze na utf8mb4;
- Poté restartujte MySQL, můžete vložit čínské výrazy a výrazy Emoji.
Řešení problému se znakem MySQL Emoji
第 1 步:Upravte konfigurační soubor MySQL my.cnf
- (Windows server je my.ini,LinuxServer je my.cnf)
- soubor my.cnf, obvykle v
/etc/mysql/my.cnf
pozice. - Ovládací panel CWPSoubor my.cnf je in
/etc/my.cnf
pozice.
Až to najdete, přidejte do následujících tří částí následující obsah ▼
[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 步:Restartujte databázi MySQL
service mysqld restart
Krok 3: Znovu zkontrolujte znakovou sadu a zadejte ▼ do příkazového řádku SQL
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';
Zkontrolujte, zda následující ▼
Zadejte následující příkaz SQL▼
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Zkontrolujte, zda je to takto▼
+--------------------------+--------------------+ | 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 | +--------------------------+--------------------+
Po vytvoření nové databáze v phpMyAdmin musíteZobrazit kód databáze ▼
SHOW CREATE DATABASE db_name;
- 如:
SHOW CREATE DATABASE test;
Pokud není kódování databázeutf8mb4
, musíte upravit znakovou sadu databáze nautf8mb4
.
Jak upravit znakovou sadu databáze na utf8mb4?
Krok 1: Klikněte na název aktuální databáze v phpMyAdmin a poté klikněte na SQL.
Krok 2: Zadejte následující příkaz pro úpravu znakové sady databázeutf8mb4
▼
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
- 如:
ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;
第 3 步:Restartujte databázi MySQL
service mysqld restart
- A je to.
Zde je několik příkladů příkazů SQL:
Změňte výchozí znakovou sadu a všechny sloupce znaků v tabulce na novou znakovou sadu ▼
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;
Pokud pouze upravíte výchozí znakovou sadu tabulky▼
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
- 如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
Upravte znakovou sadu pole ▼
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;
Zobrazit kód tabulky ▼
SHOW CREATE TABLE tbl_name;
Zobrazit kódy polí ▼
SHOW FULL COLUMNS FROM tbl_name;
Zobrazit aktuální kód databáze ▼
SHOW VARIABLES LIKE 'character_set_%';
- Balíček ovladače mysql-connector-java podporuje pouze utf5.1.13mb8 ve verzi 4+
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) sdílené "Jak uložit Emoji do MySQL? Zadejte do databáze Emoji výraz otazník znak problém", což je pro vás užitečné.
Vítejte u sdílení odkazu na tento článek:https://www.chenweiliang.com/cwl-26592.html
Vítejte na telegramovém kanálu blogu Chen Weiliang, kde získáte nejnovější aktualizace!
📚 Tento průvodce má obrovskou hodnotu, 🌟Toto je vzácná příležitost, nenechte si ji ujít! ⏰⌛💨
Sdílejte a lajkujte, pokud se vám líbí!
Vaše sdílení a lajky jsou naší neustálou motivací!